显示HTML用户输入,安全问题(Show HTML user input, security iss

2019-09-22 09:06发布

在我的网站上,用户将能够为内容输入html标签,让文本可以是粗体,斜体或链接和图像。 我打算使用CKEditor的或真正使用HTML标签(未BBC代码或wiki语法)如果我允许HTML TinyMCE的,当文本将显示它被解释,它可能包含一些“黑客”像JavaScript或XSS .. ..我该怎么做才能避免这个安全问题? 我必须列出想要的HTML标签,并删除所有不必要的标签和内容? 我可以使用带标签呢?

它是如何在计算器例如做了什么?

你知道一些插件的PHP / jQuery插件谁可以安全地保存和安全地诠释有限html标签?

在此先感谢您的帮助

Answer 1:

您需要同时使用服务器端的HTML消毒剂和内容安全策略防止行脚本,评估和远程托管脚本

根据您所使用的语言进行服务器端,使用HtmlSanitiser或Python漂白。

无论是使用客户端验证或幼稚过滤不会保护你的所有:

  1. 客户端验证,如@Smamatti建议,如果用户手动提交表单不会帮你。
  2. 幼稚滤波如str_replace('<script>', '', $str); 通过@ user1477388建议有人上传时不会保护你<script src="foo"><<script>script>alert('foo');</script><body onload="alert('foo')";</body>


文章来源: Show HTML user input, security issue