好吧,现在我有一个难题,我需要允许用户插入RAW HTML,还可以阻止所有JS - 不仅是脚本标签,还来自HREF等。目前我知道是
htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
但这也将有效标签转换为编码字符。如果我使用Striptags,它也无法正常工作,因为它删除标签!(我知道您可以允许标签,但事实是,如果我允许任何标签,例如<a></a>
,人们可以在其中添加恶意JS。
我有什么可以允许HTML标签但没有XSS注入的?我已经计划了一个函数:xss()
,并与此设置了我的网站模板。它返回逃脱的字符串。(我只需要逃脱的帮助:)
谢谢!
相关:防止XS,但仍允许html php
htmlpurifier文档的示例代码:
require_once '/path/to/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($dirty_html);
您可以将该代码用作xss(...)
方法中的参考。