删除XSS攻击,同时仍允许HTML

  • 本文关键字:HTML XSS 攻击 删除 php xss
  • 更新时间 :
  • 英文 :


好吧,现在我有一个难题,我需要允许用户插入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(...)方法中的参考。

最新更新