我在我的网站中使用 CKEditor 让用户发表他们的评论。CKEditor 有很多按钮来撰写评论。假设如果用户将他的评论设为粗体和斜体,例如
This is comment
CKEditor 将输出以下 html
<i><strong>This is comment</strong></i>
现在,如果我将这个 html 存储在 mysql 数据库中并按原样输出到网页上,而不用 htmlspecialchars() 包装,那么评论将在页面上显示为粗体和斜体,这就是我想要的。
但另一方面,如果我用 htmlspecialchars() 包装评论并将其显示在网页上,它将显示为
<i><strong>This is comment</strong></i>
但我不想这样显示,我想要用户格式化。但是如果我不使用 htmlspecialchars() 包裹它,它是有风险的,它可能会导致 XSS 攻击和其他安全风险。
我怎样才能实现这两个目的(1)。保留用户格式 (2)。同时保护 HTML 内容