【问题标题】:ASP.Net error: A potentially dangerous Request.Form value was detected from the clientASP.Net 错误:从客户端检测到具有潜在危险的 Request.Form 值
【发布时间】:2010-10-16 18:28:36
【问题描述】:

我在我的 asp.net 页面中收到此错误:

从客户端检测到一个潜在危险的 Request.Form 值 (ctl00$DefaultContent$UCSimpleSearch$txtFind="$%^%^&@#%@")。

当我在此页面的文本框中键入 $%^%^&@#%@ 并点击提交时,我收到此错误。

如何克服这个错误? 是否建议在 Page 指令中设置 validateRequest=false 以摆脱这种情况?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    这意味着您不能将包含 HTML 标记的值发布到服务器,出于安全原因,它是在 .net 框架的早期版本中添加的

    如果您必须允许用户发布 html 标签,您可以将 validateRequest="false" 添加到页面指令

    【讨论】:

      【解决方案2】:

      只有在您确定要自己验证并且希望将任何人能想到的任何内容都发布到您的服务器时,才应该在页面指令中添加 validateRequest=false。

      如果您输入的字符串是有效输入,您将需要禁用请求验证。

      【讨论】:

        【解决方案3】:

        是否建议在 Page 指令中设置 validateRequest=false 以摆脱这种情况?

        如果您可以显式处理文本框输入的验证,为什么不呢?

        【讨论】:

          【解决方案4】:

          将 ValidateRequest 设置为 false 是解决此错误的一种方法。您必须决定的是这些字符中的任何一个是否是您的表单的有效输入字符。如果是,那么您需要将其关闭并确保正确处理所有用户输入。

          我似乎找不到危险角色的列表,所以如果有人知道一个,那么有一个指向它的链接会很有价值。

          可以在here找到一些不错的信息。

          作为一般规则,您应该始终对放置在您网站上的任何数据进行 html 编码,因此关闭此功能不会造成任何伤害。但是,如果您不确定是否是,最好将其保持打开状态,并且不允许在您的表单中使用此数据。

          【讨论】:

            猜你喜欢
            • 2010-12-20
            • 2011-02-26
            • 2014-02-11
            • 2018-03-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多