【问题标题】:XSS url filteringXSS url 过滤
【发布时间】:2011-09-18 06:23:21
【问题描述】:

我正在使用我制作的这个功能,虽然可能不是原创的,并且想知道这是否适合过滤基于 url 的 XSS 攻击。在这里

function clean($url) {
    return strip_tags(html_entity_decode(urldecode($url), null, 'UTF-8'), ENT_QUOTES);
}

如果不是正确方向的点就好了

【问题讨论】:

  • 我认为urlencode($dangerous_url) 足以编写<a href="$escaped_url">link</a>。如果我错了,我很高兴被指出正确的方向来学习新东西
  • 或许你可以看看 Drupal 的 filter_xss 函数?
  • 等等,你想做什么?基于 url 的 XSS 攻击是什么意思?
  • betamos - 我想过滤进入浏览器窗口的 Xss。购买从 $_SERVER['REDIRECT_URL'] 或 $_SERVER['REQUEST_URI'] 获取 url 路径 redirect_url 以 url 编码方式返回 url

标签: php url filter xss filtering


【解决方案1】:

我建议你选择一个著名的框架(稳定),例如 Codeigniter、Kohana、Yii、Zend 并浏览它的源代码。它们中的大多数都提供了您可以适应的辅助功能。通过这种方式,您可以使用“社区编辑”的内容,该内容始终与大多数安全威胁保持同步。

【讨论】:

    【解决方案2】:

    我建议查看OWASP's ESAPI Project。他们创建了一个编码库,其中包含多种语言,包括 Java、.NET、PHP、Classic ASP、Cold Fusion、Python 和 Haskell。它具有为您正在处理的上下文编码不受信任的数据的工具:

    • 为HTML编码
    • encodeForHTMLAttribute
    • encodeForJavaScript
    • encodeForCSS
    • encodeForURL

    它还满足输入验证。 一些使用 ESAPI 的组织包括 American Express、Apache Foundation、Booz Allen Hamilton、Aspect Security、Foundstone(McAfee)、The Hartford、Infinite Campus、Lockheed Martin、MITRE、U.S. Navy - SPAWAR、世界银行、SANS Institute。

    我还建议阅读他们的XSS Prevention Cheat Sheet,其中描述了构建针对 XSS 的防御的最佳实践(本质上归结为,您必须对要放置不受信任数据的 HTML 文档部分使用转义语法进入)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      相关资源
      最近更新 更多