【发布时间】:2019-10-24 21:08:54
【问题描述】:
我正在创建一个论坛,我只希望在其中显示 img 标签并安全地转义所有其他标签,但不删除。除了从头开始创建函数之外,完成此任务的最佳方法是什么?
我曾尝试使用 HTML Purifier,但它会去除所有不需要的标签,只保留所需的标签。此外,我尝试了其他函数,例如 strip_tags 和 htmlentities 以及 blaede 中使用的转义运算符({{ }}),但这些函数要么剥离不需要的标签(我希望它们被转义)要么转义所有标签(我也不想这样做,因为我想保留 <img> 和 <br> 标签。我看到了其他类似的问题,但不幸的是,它们都没有真正帮助我。
到目前为止,我所做的是使用:
$post->content = Purifier::clean($request->content);
临时删除不需要的标签以防止 XSS。
我希望在用户插入的数据之后显示如下:
Hi all
<script>alert('hi all')</script>
<img src='sun.png'/>
现在正在显示以下内容
Hi all
hi all
<img src='sun.png'/>
更新:
我的问题没有与被标记的问题重复。希望版主能解决这个问题。
【问题讨论】:
-
@zbee 他说他不想剥掉它们。
-
@zbee 我清楚地提到我***不***想要剥离标签。 所有其他标签被安全转义,但不被删除
-
@Samad 所有其他标签被安全转义,但不被删除