【问题标题】:Internet Explorer XSS filter goes off when submitting a form?提交表单时 Internet Explorer XSS 过滤器关闭?
【发布时间】:2014-07-29 17:28:23
【问题描述】:

我有一个要由 w3c 验证的页面。在开发者菜单中,我有一个如下所示的验证链接:

<form action="http://validator.w3.org/check" method="post" style="display:inline">
<textarea name="fragment" cols='0' rows='0' style="display:none;">{$page_content}</textarea>
<a href="#" onclick="$(this).closest('form').submit()" title="Validate the XHTML of this page.">XHTML</a>
</form>

$page_content 是一个包含页面源代码的字符串。当我存储源代码时,我使用 htmlspecialchars 对特殊字符进行编码。此验证链接在 Chrome 和 FireFox 上运行良好,但在 Internet Explorer 上,当我点击提交链接时,浏览器停止并显示一条错误消息,指出它已修改页面以帮助防止跨站点脚本。

还有其他方法可以解决这个问题吗?您可以为 w3c 提供要验证的页面的 URI,但用户必须使用 id 登录才能查看我要验证的页面。我提前感谢所有输入。谢谢你:)

编辑:我的最终目标是创建一个链接,将我的页面源代码提交给 w3c 的 XHTML 验证器。

【问题讨论】:

    标签: php html validation xss w3c


    【解决方案1】:

    这是由于浏览器中启用了Cross-site Scripting (XSS) Filter

    这可以通过禁用 xss 过滤器来解决。

    查看here 了解如何禁用它

    【讨论】:

      【解决方案2】:

      不修改浏览器设置的唯一方法是在您的服务器上设置一个代理脚本,该脚本将使用 libcurl 将数据转发到http://validator.w3.org/check 并打印结果。这样,所有跨站点流量都会转移到没有此类限制的服务器端。

      还有其他选项,例如设置您自己的验证器本地副本。 See the validator documentation 了解更多详情。

      【讨论】:

        【解决方案3】:

        您可以通过发送following HTTP 标头来逐页禁用 IE 的 XSS 过滤器。

        X-XSS-Protection: 0
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-15
          • 1970-01-01
          • 2011-07-07
          • 1970-01-01
          相关资源
          最近更新 更多