首页 > 解决方案 > c# HttpRequestValidationException

问题描述

我在 Amazon EC2 上运行了 ac# asp.net 应用程序,但是出现验证错误:

异常类型:HttpRequestValidationException

异常消息:A potentially dangerous Request.RawUrl value was detected from the client (="...h&content=<php>die(@md5(HelloT...").

日志显示请求 url 是:

http://blah.com/?a=fetch&content=<php>die(@md5(HelloThinkCMF))</php>

那个 PHP die 脚本是从哪里来的?这是某种安全漏洞,我不知道如何调试它。

标签: c#validationexception

解决方案


这是由于称为“请求验证”的内置 ASP.Net 功能导致抛出异常以防止在例如查询字符串中发现危险字符时进行攻击。在这种情况下,很可能是<字符造成的,禁止让Cross Site Scripting等攻击更加困难。因此,该错误表明访问您的站点的尝试在您的应用程序代码被调用之前就已停止。

您示例中的查询字符串可能是由某些自动攻击脚本或僵尸网络生成的,这些脚本或僵尸网络在您的站点上抛出随机数据以试图破坏它。您可以放心地忽略这个特定的攻击实例,因为您没有运行 PHP。话虽如此,正如其他人所评论的那样,它确实表明有人试图进入,因此您应该考虑在您的应用程序代码或网络/托管设置中采取适当的安全措施。但是,这些内容超出了本网站的范围,并且在不了解您的上下文的情况下很难说。


推荐阅读