asp.net请求限制
来源:互联网 发布:单片机和微处理器功能 编辑:程序博客网 时间:2024/06/14 00:04
很多时候会碰到问题,比方说在浏览器直接输入路径的找到相应的HTML,这个HTML会泄露一些信息,或者是JSon文件会等其他文件,这时候需要进行过滤,阻止直接输入地址然后访问。
比如文件上传控件,在地址栏输入控件的路径会导致能够直接访问服务器的文件并且可以上传
解决方案,进行访问过滤
创建一个处理程序,将这个处理程序的命名空间和类名复制,然后在webconfig中配置如下节点
<httpHandlers> <add verb="*" path="*/XXX.html*" type="命名空间.类名,命名空间" /> </httpHandlers>
path是地址,做一个通配即可
处理程序里面的代码进行访问验证,比方说如果用户处于登录状态才可以访问,则可以简单的进行session验证即可最后需要在IIS里面进行配置,新增一个处理程序映射,路径可以同webconfig,可执行文件选择C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,如果是.net2就选择V2里面的,起个名配置一下请求限制即可使用,此时访问指定通配路径的页面或文件则会先访问处理程序,由处理程序进行能否访问的处理
以上,即可完成访问的过滤。
同样,此方法可以实现防盗链处理。
缺点:访问指定路径则会先执行处理程序,某种意义讲,多了一个验证会降低能够访问情况下的效率,但是影响应该不大,有时间会进一步进行测试。
补充:
最近发现有些东西无法运行在经典模式下,所以就试图研究一下如何在集成模式下进行对应的访问限制和验证,找了半天资料倒腾了好几天,结果发现解决方案跟上面完全一样.....尴了个尬......
查了查,发现集成模式和经典模式的配置文件些许区别,在经典模式下需要在<system.web>节点下配置<httpModules>或者<httpHandlers>,而集成模式是在<system.webservice>里面配置<modules>和<handlers>节点即可
于是乎,把上面的代码直接移动到<system.webservice>节点里面就可以解决问题了
<system.webServer> <handlers> <add name="filterHandler" verb="*" path="*/ckfinder.html*" type="baoming.Web.services.filter,baoming"/> </handlers> </system.webServer>
找了那么久方案结果发现就只需要改个配置文件....
当在配置文件中加上这个节点之后,IIS的处理程序配置里面也会自动增加该节点的配置,无需进行更改,这时候就可以在集成模式下进行访问控制了~
- asp.net请求限制
- ASP.NET WebApi实现请求频率限制
- [ASP.NET]HTTP请求
- asp.net异步请求
- Asp.Net 发请求
- ASP.NET限制上传文件类型
- ASP.NET FileUpload 文件大小限制
- ASP.Net请求处理模式
- AJAX请求ASP.Net脚本
- asp.net禁用请求验证
- ASP.NET 请求处理流程
- ASP.NET 请求处理流程
- ASP.NET请求处理流程
- ASP.NET Url请求过程
- ASP.NET 请求处理流程
- ASP.Net请求处理模式
- asp.net请求超时错误
- asp.net请求超时错误
- Java中的多线程你只要看这一篇就够了
- Merge Sorted Array
- Java内存溢出与栈溢出
- [leetcode]167. Two Sum II
- Tomcat报错error listenerstart解决办法
- asp.net请求限制
- asp.net中的onclientclick和onclick
- c#内存清理
- 用qml画坐标
- seq2seq 训练时 feed 自己的数据
- PHP学习笔记4:变量
- ifconfig
- 利用python的matplotlib绘制分布图
- 运维不仅仅是Linux,居然还要知道这么多?(2017-05-11 永福 运维帮)