如何使网站不出现从客户端(:)中检测到有潜在危险的 Request.Path 值这样类似的提示

从.net4.0开始,微软加入了对特殊字符的限制。默认的是7个特殊字符:requestPathInvalidCharacters = “<,>,*,%,&,:,\”
一旦有这7个特殊字符,则asp.net直接报有潜在危险的Request.Path,Request.Form,Request.QueryString等这样的错误

这是为什么出现的原因,可以在web.config中去除掉要限制的特殊字符,或者关闭校验。网上能找到三种关闭校验的方法:
方法1:
在.aspx文件头中加入这句:
<%@ Page validateRequest=”false” %>

方法2:
修改web.config文件:

<system.web>
    <pages validateRequest="false" />
</system.web>

因为validateRequest默认值为true。只要设为false即可。

方法3:
web.config里面加上

<httpRuntime requestValidationMode="2.0" />

如果你觉得这样处理对网站安全影响不大,那么这样处理就能解决此问题。但是如果你认为这样处理安全风险大,就可以用下我使用的方法。
我刚开始的思路是在httpmodule中截获url,然后检测是否有需要屏蔽的字符,如果有则重定向到其他页面的。但是实验发现,没有走到httpmodule处理这步,错误就发生了。

那再往前推,只能在IIS中截获,而不能在aspnet_isapi中截获。这个时候想到了iis中的一个模块,url重写。服务器用的是windows2008系统。默认的IIS中没有这个模块。需要首先安装一个web平台安装程序,安装完后在IIS管理中会出现一个web平台安装程序图标:
web平台安装程序
点击此图标,打开web平台安装程序,在产品/服务器中寻找url重写工具2.0.然后安装。安装完后,在IIS的模块中会出现url重写。

应用url重写步骤比较多,我这里就不详细写了。只说结果,我使用的是正则表达式的模式匹配,无论采用重写还是重定向,都是虽然成功。但是错误日志中仍然有检测到有潜在危险的 Request.Path 值这样的提示。这表示,虽然重定向了。但是,后续程序并没有中断,仍然执行。这不是我想要的。

幸运的是在IIS中还有一个请求筛选可以使用。打开IIS,找到要设置网站的请求筛选一项
这里写图片描述

双击打开,在打开的请求筛选页,点击url选项卡,
这里写图片描述
点击拒绝序列,添加url拒绝规则,这里添加了javascipt:,意思是在url中只要包含这个字符串,就会拒绝,添加后测试,发现错误日志中不会出现检测到有潜在危险的 Request.Path 值这样的提示,但是,页面却会出现404错误页的提示,仍然不行,我这里想要的不是404错误提示,而是重定向到网站首页。这里可以自定义404错误页来避免404错误提示。我的设置如下图:
这里写图片描述
这里一定要选择302重定向,而不用选择在此网站执行url。因为选择这个,url地址栏显示的还是原来的url地址。到这里,这个问题算解决了

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,无法直接回答你的问题。引用和引用提供了一些关于字段类型和动态字段的信息,但与从客户检测到潜在危险Request.Form无关。 要从客户检测到潜在危险Request.Form,你可以使用一些安全性工具和技术来帮助你识别和处理潜在的安全问题。以下是一些常见的方法: 1. 输入验证:对于从客户接收到的所有输入数据,包括Request.Form,都应该进行验证。验证可以包括检查输入的长度、格式、类型和特殊字符等。你可以使用正则表达式或内置的验证函数来实现输入验证。 2. 输出编码:在将从Request.Form获取的输出到响应时,确保对进行适当的编码,以防止跨站点脚本攻击(XSS)。常见的编码方法包括HTML编码和URL编码。 3. 防范SQL注入:如果你将Request.Form用于构建SQL查询,确保使用参数化查询或预编译语句来防止SQL注入攻击。不要直接将Request.Form拼接到SQL查询字符串。 4. 防范跨站点请求伪造(CSRF):对于涉及敏感操作的请求,例如更改密码或删除数据,确保使用CSRF令牌来验证请求的合法性。CSRF令牌可以防止恶意网站利用用户的身份进行伪造请求。 5. 安全审计日志:记录所有与Request.Form相关的操作,包括输入验证失败、异常请求和安全事件。这些日志可以帮助你追踪和调查潜在的安全问题。 请注意,以上方法只是一些常见的安全措施,具体的实施方法可能因你使用的编程语言和框架而有所不同。建议你查阅相关的安全文档和指南,以了解更多关于保护Web应用程序安全的最佳实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值