XSS网址过滤

时间:2011-06-19 18:49:24

标签: php url filter xss filtering

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

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

如果没有正确方向上的一点会很好

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

  • encodeForHTML
  • encodeForHTMLAttribute
  • encodeForJavaScript
  • encodeForCSS
  • encodeForURL

它也适合输入验证。 一些使用ESAPI的组织包括American Express,Apache Foundation,Booz Allen Hamilton,Aspect Security,Foundstone(迈克菲),哈特福德,无限校园,洛克希德马丁,MITER,美国海军 - SPAWAR,世界银行,SANS研究所。

我还建议给他们的XSS Prevention Cheat Sheet一个阅读,其中描述了构建防御XSS的最佳实践(它实质上归结为你必须使用转义语法来放置你正在放置的HTML文档部分不可信的数据。)。