【问题标题】:How to avoid apps from XSS attacks?如何避免应用程序受到 XSS 攻击?
【发布时间】:2011-04-24 09:53:44
【问题描述】:

如何保护我们的 Web 应用程序免受 XSS 攻击?一个应用程序很容易受到攻击,如果它不做任何特殊字符的转换。

【问题讨论】:

标签: java jakarta-ee


【解决方案1】:

在将输入返回给用户之前,您应该对任何输入进行 HTML 转义。一些参考资料:

【讨论】:

    【解决方案2】:

    HTML 转义输入效果很好。 但在某些情况下,业务规则可能会要求您不要转义 HTML。 使用 REGEX 不适合这项任务,而且很难用它想出一个好的解决方案。

    我发现的最佳解决方案是使用: http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer

    它使用提供的输入构建一个 DOM 树,并过滤白名单之前不允许的任何元素。 API还有其他清理html的功能。

    【讨论】:

      【解决方案3】:

      只是添加到 WhiteFang34' 列表中:

      它有几个内置的白名单可供选择,例如允许一些HTML,不允许HTML等。

      我之所以选择它而不是 Apache Commons 的 StringEscapeUtils.escapeHtml(),是因为它处理撇号的方式。 IE。如果我们的用户输入:

      艾伦的妈妈有一个很好的布朗尼食谱。

      JSoup 会单独留下撇号,而 Apache Commons 会将该字符串转义为:

      艾伦的妈妈有一个很好的布朗尼食谱。

      在向用户显示之前我不想担心取消转义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-07
        • 1970-01-01
        • 2016-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多