我正在使用PHP构建一个小型站点。在该网站中,我收到用户生成的文字内容。我想要允许一些安全的HTML标记(例如格式)以及MathML。我如何着手编译strip_tags()
函数的白名单?有一个我可以使用的很好的白名单吗?
0
A
回答
4
标准strip_tags
函数不足以满足安全性,因为它根本不验证属性。明确使用更完整的库来完全清除HTML,如HTML Purifier。
1
如果您的目标是不允许JavaScript通过,那么您的标记白名单将非常接近空集。 请记住,几乎所有标签都可以有event attributes包含要在指定事件发生时执行的JavaScript代码。
如果您不想沿着HTMLPurifier类型的路线走,请考虑使用其他语言,如markdown(本网站使用的语言)或其他类似wiki的标记语言;但是,一定要禁用任何可能允许使用的直通HTML。
+0
降价是否允许MathML或LaTeX? – JDelage 2012-02-08 13:28:30
相关问题
- 1. Django的内联表单集 - 允许使用空白动态生成的形式
- 2. 我应该生成HTML表单吗?
- 3. 白名单允许Heroku postgres的主机?
- 4. .htaccess - 白名单允许的URL
- 5. AngularJS - 用用户生成的内容增加动态HTML内容
- 6. 允许空白上应该validate_uniqueness_of
- 7. JavaScript替换允许的HTML标记
- 8. 用户控制的开始和结束标记之间不允许有内容
- 9. 允许用户下载在线内容的Android应用程序
- 10. 我应该允许多高的用户指定的SQL LIMIT?
- 11. ASP.NET MVC:如何在Html编码内容中允许一些HTML标记?
- 12. 允许用户上传内容到s3
- 13. 内容中的HTML标记
- 14. 允许匿名用户在SharePoint文档库中保存表单的内容
- 15. 允许标记内容的任何分布式缓存系统?
- 16. 将样式应用于静态网站html和用户生成的html内容
- 17. 我该如何编程检查JFormattedTextField允许输入的内容?
- 18. TinyMce允许所有Html标记
- 19. 在ckeditor中允许空html标记
- 20. 如何配置jsoup白名单以允许内部定位点
- 21. 允许用户子域名的网站 - 我应该阻止用户使用哪些子域名?
- 22. 用户允许我的应用程序的许可权
- 23. ASP.Net MVC 3允许匿名白名单不起作用
- 24. Liferay的 - 导出用户生成内容
- 25. WordPress用户生成的内容插件
- 26. 用户生成内容的CMS?
- 27. JSF不会允许通过jquery&javascript生成html标签吗?
- 28. 不应该允许单个零或0 ##
- 29. 允许用户将html列表的内容保存到文本文件
- 30. 编写SQL生成器,我应该阅读什么内容?
另一个好的资源是[OWASP XSS预防备忘录](https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet) – pepsi 2012-02-07 23:30:54