我喜欢使用第三方图书馆帮助加强我的网站的安全性的想法,但我对几件事情感到困惑…
>首先,一个一般的问题… HTML Purifier做什么,练习安全的PHP编程不行?
>如果我使用HTML Purifier,这是否意味着我可以跳过常用的安全措施,例如使用PHP函数来过滤输入和转义输出?
> this question的响应评论之一似乎建议HTML Purifier仅对允许HTML标签的元素(如WYSIWYG编辑器)需要.它是否正确?
>有人注意到使用HTML Purifier的性能滞后? This article使它看起来像性能影响值得考虑.
>有没有关于将HTML Purifier与非框架程序集成在一起的最新教程?我发现的一切都是old或framework-specific.
只是为了确认我已经完成了我的功课,然后再问这个…
> This question基本上与我的一样,但孤单的反应似乎只是列举另一个最佳实践,asker忘了提到
> This ‘bountiful’ question是一个关于HTML Purifier和HTML5的极好的资源,但假设了基础知识
>这个comparison page在HTML Purifier的网站上是比较其他的过滤器
解决方法
>不分青红皂白地将所有内容都转移到HTML实体,所以用户不会注入任何东西.这是100%安全的,但允许用户无需添加任何HTML,例如用于加粗文本等.
>输出从用户那里收到的内容.这允许用户使用< b>粗体文本< / b>,而且还可以以用户期望的任何其他形式(有意或无意地)注入脚本或混淆您的HTML.
HTML净化器允许一个中间的地方:允许用户注入一些HTML,但不是恶意的HTML.这当然是一个麻烦的事情,但是HTML Purifier据称是少数几个图书馆之一,如果不是唯一的,它是正确的.
这是唯一应该用于的东西.不要放弃您的其他安全措施.事实上,我完全可以通过允许用户使用受控制的标记语言对其输入进行风格来避免整个问题,比如Markdown(Stackoverflow使用的).