当前位置:  开发笔记 > 编程语言 > 正文

如果我使用HTMLPurifier,是否还需要使用htmlentities?

如何解决《如果我使用HTMLPurifier,是否还需要使用htmlentities?》经验,为你挑选了1个好方法。

我一直在'洒'

htmlentities($user_input, ENT_QUOTES, 'UTF-8')

在我的观点中,无处不在,我回应用户有机会在我的应用中输入的数据.

这非常繁琐,我想知道在我的控制器中使用HTMLPurifier是否可以安全地替代在视图中使用htmlentities每一个echo.

我已经注意到,单独的HTMLPurifier将尝试关闭一个打开

而不是删除它,所以如果一些smartass输入他的名字,Johnny
而我echo在我的视图中,它会破坏我的整个布局.

但如果相反,我会htmlentities独自使用

Johnny

我的布局得以保留.

所以我想知道这是否是HTMLPurifier配置的问题,或者最佳做法是与它一起使用它htmlentities.

我理解HTMLPurifier有其他功能符合要求和有效的HTML,但我最关心的是XSS.

你怎么看?



1> Jon..:

如果你担心XSS然后使用htmlspecialchars(没有理由使用全面的htmlentities),你是金色的:

echo htmlspecialchars($user_input);

HTMLPurifier仅在您希望允许某些 HTML功能同时仍然阻止XSS 时才有意义.但是,与任何其他代码一样,它有可能在某些时候不如广告那样有效.就个人而言,我不会去那里.

更新:

是的,htmlspecialchars确实支持其他标志(包括ENT_QUOTES).但是,在以下ENT_QUOTES情况需要:

您正在输出HTML属性的值

您已将值括在引号内

因此,例如,你会不会需要ENT_QUOTES在这里:

或者在这里:

在这里需要它:

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有