gpt4 book ai didi

php - 在仍然允许 html 的情况下删除 XSS 攻击?

转载 作者:可可西里 更新时间:2023-10-31 23:22:49 25 4
gpt4 key购买 nike

好吧,现在我进退两难了,我需要允许用户插入原始 HTML,但也阻止所有 JS - 不仅仅是脚本标签,还有 href 等。目前,我所知道的是

htmlspecialchars($string, ENT_QUOTES, 'UTF-8');

但这也会将有效标签转换为编码字符。如果我使用 striptags,它也不起作用,因为它删除 标签! (我知道你可以允许标签,但问题是如果我允许任何标签,例如 <a></a>,人们可以向它添加恶意 JS。

我能做些什么来允许 html 标签但没有 XSS 注入(inject)吗?我计划了一个功能:xss()并用它设置我网站的模板。它返回转义的字符串。 (我只需要帮助转义 :))

谢谢!

最佳答案

相关:Preventing XSS but still allowing some HTML in PHP

示例代码来自 HTMLPurifier Docs :

require_once '/path/to/HTMLPurifier.auto.php';

$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($dirty_html);

您可以将该代码用作您的 xss(...) 方法中的引用。

关于php - 在仍然允许 html 的情况下删除 XSS 攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12942225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com