php - 如何使用 Summernote 使用 PHP 防止危险的 HTML 输入?

标签 php html summernote

我最近发现了 Summernote,它似乎是一个不错的应用程序,尽管我偶然发现了一个问题。

您可以在进入源代码时添加恶意 HTML 代码,例如:

<plaintext>
<script>

那么如何使用 PHP 来防止这种情况呢?我确实希望用户能够使用某些样式标签,例如:

<h1>
<p>

编辑器自动使用的。

我知道我可以继续使用 str_replace() 检查字符串中是否包含任何恶意 HTML,但我认为必须有更简单的方法来完成它。

最佳答案

通常,这里的问题是您在 HTML 上下文中使用文本而没有正确转义所有保留实体,这可能导致注入(inject)任意 HTML,就像您描述的那样。 htmlspecialchars() 是这个问题的正常解决方案。

但是,您想支持 HTML,但又不想全部支持。因此,您需要一个完全不同的解决方案。 HTML Purifier是一种可以满足您需求的解决方案。它解析数据并仅通过白名单标签。来自他们的 documentation :

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

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

关于php - 如何使用 Summernote 使用 PHP 防止危险的 HTML 输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34582656/

相关文章:

javascript - Bootstrap Validator Summernote 字段不会重新验证

jquery - Summernote js编辑器Serialize()获取HTML代码?

jquery - 插件不适用于 append 元素

php - LoadXML 文件太大

php - 根据存储的 cookie 信息将用户重定向到网站

php - 如何在我的共享主机中启用 extension=fileinfo.so?

html - DIV 位置因内容长度而异

html - 如何自动检查网站上元素的实例并返回数字值

php - 上传PNG到网站服务器

php - 如何将XML元素的值写入MySQL数据库?