我有一个 <textarea>
其值被发送到服务器并存储在数据库中。该值稍后会在 HTML 的不同页面上呈现。
我需要做什么来清理它?只是删除 HTML 标签? (它已经是 SQL 注入(inject)安全的,因为我使用的是存储过程和参数。)
有人有 sanitizer 程序吗?
最佳答案
不净化输入。而是在输出时对其进行编码。这很容易通过 .net 4 功能 (<%: ""%>) 或通过代码审查来实现。
数据应以其原始格式存储。人类可读文本的原始格式只是文本,而不是它的某种编码版本。您不能轻易地操纵编码文本(比如突出显示单词或替换)。
不在数据库中编码文本甚至可以节省一点存储空间。
净化输入无论如何都很难。除了对所有内容进行编码之外,很难做更多的事情。将 HTML 标签列入黑名单是一种忘记某些事情的方式,所以不要这样做。
关于javascript - 清理稍后将出现在 HTML 中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5838770/