Sla*_*uma 19 asp.net security url http asp.net-4.0
某人(可能是机器人)向我的ASP.NET 4.0 Web表单应用程序(在IIS 7.0上运行)发送了带有以下URL的请求:
http://ipaddress-of-my-applications-domain/bla1.bla2.bla3.bla4.bla5:)
这引起了System.Web.HttpException
.我收到了来自我配置的ASP.NET HealthMonitoring的日志邮件,告诉我:
从客户端(:)检测到潜在危险的Request.Path值.
堆栈跟踪是:
System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
Run Code Online (Sandbox Code Playgroud)
为什么URL中的冒号"有潜在危险"?使用这样的URL可以做些什么危险的事情?我在这里有任何安全漏洞我不知道吗?
感谢提前解释!
编辑
我已经测试过查询字符串(例如http://mydomain.com?Test=9:)
)中的冒号不会导致此异常.
bob*_*nce 20
在NTFS上,给定的文件路径可以有多个关联的数据流.除了主流(也称为主流)之外,还$DATA
可以存在其他流,通常用于存储下载文件中的因特网区标记之类的元数据.
使用冒号分隔符访问备用数据流,例如.file.dat:$DATA
是另一种说法file.dat
.ADS通过网络的存在导致了微软过去的一些安全问题(例如,返回ASP页面的源代码而不是执行它们),所以作为预防措施,他们阻止在路径部分使用冒号. URL,因为路径部分经常映射到文件系统(虽然不是你的情况).这不太可能从查询字符串发生,因此不会在那里被阻止.
这远远不是最严重的误报率请求验证将产生的.它的抗注射功能更糟糕.我个人总是会禁用它,因为它是一个愚蠢的破坏功能,永远不会让你的webapp安全; 只有适当注意字符串转义(以及你计划用作文件名的任何东西的重度消毒)才能做到这一点.
还有其他字符即使您关闭请求验证,也无法将路径部分放入路由部分.特别是,斜杠(%2F
,%5C
和将解析为相同的UTF-8序列无效的字节序列)和零字节.一般来说,最好保守一点.
归档时间: |
|
查看次数: |
13203 次 |
最近记录: |