好吧,现在我陷入了困境,我需要允许用户插入原始 HTML,但也阻止所有 JS - 不仅仅是脚本标签,还包括 href 等。目前,我所知道的是
htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
但这也会将有效标签转换为编码字符。如果我使用 striptags,它也不起作用removes标签! (我知道您可以允许标签,但问题是如果我允许任何标签,例如<a></a>
人们可以向其中添加恶意 JS。
我可以做些什么来允许 html 标签但不进行 XSS 注入吗?我计划了一个功能:xss()
并用它设置了我的网站模板。它返回转义的字符串。 (我只需要帮助escaping :))
Thanks!
有关的:防止 XSS 但仍允许 PHP 中使用某些 HTML
示例代码来自HTMLPurifier 文档:
require_once '/path/to/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($dirty_html);
您可以使用该代码作为您的参考xss(...)
method.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)