0

我正在研究一种管理来自用户编辑的文本区域的数据的解决方案。我必须让用户有机会添加一些基本的 HTML 标记(链接、粗体、列表和其他内容)。我最担心的是安全性。数据将保存在 mySql 数据库中。

有什么建议可以尽可能避免安全问题吗?将这种文本保存在数据库中的最佳方法是什么?

谢谢

4

1 回答 1

0

解决此问题的最佳方法是制作允许标签的白名单。通过 JavaScript,您可以警告用户他们正在输入无效数据,但是为了在服务器端保护您的数据,您需要将它们从内容中删除。例如,应该小心处理脚本标签。如果您希望您的用户输入这些内容,并且其他用户能够查看它,则需要进行一些更复杂的处理。

一个巧妙的解决方案是转义所有白名单标签并将其他标签编码为字符,以便<script>标签变为&lt;script&gt;. 这样,如果您在 html 中输出它,它不会被视为有效标签,而是被视为一个接一个放置的字符。

如果您需要针对您自己的语言的更具体的解决方案,请提供更多详细信息,但这作为一个全球概念就足够了。

于 2012-05-12T01:44:27.077 回答