【问题标题】:ASP.NET Ignore exception for potentially dangerous requestASP.NET 忽略潜在危险请求的异常
【发布时间】:2016-03-03 21:25:20
【问题描述】:

我有一个允许用户更改密码的 ASP.net 网页。当前,当用户在以“# 符号”结尾的表单字段中创建新密码时,它会引发服务器错误,指出从客户端检测到潜在危险的 request.form 值。我做了一些研究,发现这是因为它认为这是一个 MySQL 注释,它试图忽略“# 符号”之后的所有代码。例如,用户可以输入密码,例如 ABC#&,但不能输入 ABC。

我可以在我的 asp.net 页面上的代码中添加任何内容,例如在标题行等中,以防止服务器认为这是 SQL 注入吗?我后面代码中的所有 SQL 都使用参数,所以我现在并不担心 SQL 注入。我只是希望每个用户都能够在他们的密码中使用任何可能的字符组合。感谢您的任何见解!

【问题讨论】:

  • 您还应该关注 XSS(跨站点脚本)。您收到的警告类型旨在防止许多注入类型的攻击。您可以在您的 IDE 中关闭这些类型的限制(我将不得不研究如何做到这一点,因为我不记得临时的);但是,我不鼓励这样做,因为您正在禁用安全预防措施。如果我能弄清楚如何关闭警告,我会发布答案。哦,顺便说一句,你不会在你的 ASP.Net 页面上放任何东西来规避这个;相反,您需要在表单发布到的代码中禁用此预防措施。
  • 这对大家有帮助,非常感谢!!

标签: mysql asp.net vb.net


【解决方案1】:

如果这是您真正想要实现的目标,请查看 Microsoft 的这篇文章:https://msdn.microsoft.com/en-us/library/hh882339(v=vs.110).aspx

文章提到您可能需要修改 web.config 以包含以下设置:

<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>

和

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

或者对于单个页面:

<@ Page validateRequest="false" %>

请注意,这些配置可能会因您正在处理的 .Net 项目的类型而异。我提到的文章有更多信息。我严格引用了那个来源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多