3

在我的网站上,用户将能够为内容输入 html 标签,因此文本可以是粗体、斜体或链接和图像。我计划使用真正使用 HTML 标签(不是 BBC 代码或 wiki 语法)的 ckeditor 或 tinymce 如果我允许 HTML,当文本显示时,它将被解释,并且可能包含一些“hack”,如 javascript 或 XSS .. .. 我该如何避免这个安全问题?我是否必须列出想要的 html 标签并删除所有不需要的标签和内容?我可以为此使用条形标签吗?

例如,它是如何在 stackoverflow 上完成的?

你知道一些可以安全保存和安全解释有限html标签的插件php/jquery插件吗?

在此先感谢您的帮助

4

1 回答 1

4

您需要同时使用服务器端 HTML 清理程序和内容安全策略,以防止内联脚本、评估和远程托管脚本

根据您在服务器端使用的语言,使用 HtmlSanitiser 或 python Bleach。

使用客户端验证或幼稚过滤根本不会保护您:

  1. 如果用户手动提交表单,@Smamatti 建议的客户端验证将无济于事。
  2. str_replace('<script>', '', $str);有人上传<script src="foo"><<script>script>alert('foo');</script><body onload="alert('foo')";</body>
于 2012-09-13T13:09:54.603 回答