我有一个<textarea>
值被发送到服务器并存储在数据库中。该值随后会在 HTML 中的不同页面上呈现。
我需要做什么来消毒这个?只需删除 HTML 标签?(它已经是 SQL 注入安全的,因为我使用的是存储过程和参数。)
有人有消毒程序吗?
我有一个<textarea>
值被发送到服务器并存储在数据库中。该值随后会在 HTML 中的不同页面上呈现。
我需要做什么来消毒这个?只需删除 HTML 标签?(它已经是 SQL 注入安全的,因为我使用的是存储过程和参数。)
有人有消毒程序吗?
不要清理输入。而是在输出时对其进行编码。这很容易通过 .net 4 功能 (<%: "" %>) 或通过代码审查来实施。
数据应以其本机格式存储。人类可读文本的原生格式只是文本,而不是它的某种编码版本。您不能轻易操纵编码文本(例如突出显示单词或替换)。
不在数据库中编码文本甚至可以节省一点存储空间。
无论如何,清理输入都很难。除了对所有内容进行编码之外,很难做更多的事情。将 HTML 标签列入黑名单是一种忘记某些事情的方法,所以不要这样做。
要么完全删除标签,要么用它们的 HTML 实体 ( )替换任何特殊字符,例如<
和。无论您使用哪种服务器端语言,都可能已经具备执行此操作的功能。例如, PHP 的 or将起到作用。>
<
htmlspecialchars
strip_tags