如何正确转义 HTML 编辑器内容?

How to properly escape HTML editor content corretly?

所以我正在使用 TinyMCE 编辑器,并通过使用 htmlspecialchars() 处理了文本区域中的内容,这工作正常,但我在使用 WYSIWYG 编辑器的另一面有点困惑.. .内容输出部分

我正在使用 HTML Purifier 来输出内容,但据我了解,我一直在做例如:

$purifierConfig = HTMLPurifier_Config::createDefault();
$purifierConfig->set('HTML.Allowed', 'p');
$Purifier = new HTMLPurifier($purifierConfig);
$input = $Purifier->purify($input);

我只用 p 标签进行了测试,但这是否意味着我将不得不检查 TinyMCE 使用的所有内容并将其添加到允许的内容中?或者是否有更好的方法通过所见即所得编辑器的安全输出来解决这个问题?

是的,您需要设置所有允许的标签,以逗号分隔。您还可以通过用方括号括起来来指定允许的属性:

$purifierConfig = HTMLPurifier_Config::createDefault();
$purifierConfig->set('HTML.Allowed', 'p,a[href],b,i,strong,em');
$Purifier = new HTMLPurifier($purifierConfig);
$input = $Purifier->purify($input);

我想为了更好地理解,printDefinition 可以提供帮助。