清理稍后将出现在HTML中的输入
Sanitizing input that will later appear in HTML
我有一个<textarea>
,其值被发送到服务器并存储在数据库中。这个值随后在HTML的不同页面上呈现。
我需要做些什么来消毒这个?只是删除HTML标签?(它已经是sql注入安全的,因为我使用了存储过程和参数。)
有人有消毒程序吗?
不要清理输入。而是在输出时对其进行编码。这很容易通过。net 4的特性(<%: " %>)或代码审查来实现。
数据应该以其原生格式存储。人类可读文本的原生格式只是文本,而不是某种编码版本。您不能轻松地操作已编码的文本(例如对单词进行高亮显示或替换)。
在数据库中不编码文本甚至可以节省一点存储空间。
对输入进行消毒是很困难的。除了对所有内容进行编码之外,很难做更多的事情。把HTML标签列入黑名单会让你忘记一些东西,所以不要这样做。
要么完全删除标签,要么用它们的HTML实体(<
)替换任何特殊字符,如<
和>
。无论您使用的是哪种服务器端语言,都可能已经有了这样做的函数。例如,PHP的htmlspecialchars
或strip_tags
就可以做到。
相关文章:
- 如何编写HTML输入的JS内联
- 如何在HTML输入字段中添加不可删除的后缀
- HTML输入中不可更改的前导字符
- 如何使用jQueryAjax使用动态html输入texbox提交表单
- 清理HTML输入值
- 如何使用jQuery动态创建HTML输入
- 通过javascript以编程方式将文件插入HTML输入
- jQuery选择器不识别任何动态创建的HTML输入函数
- 将JavaScript变量传递到HTML输入框和(在PHP文件中使用)
- 如何调用两个函数是一种html输入类型
- HTML输入框未触发事件
- 移动HTML输入文本框在提交时隐藏软键盘
- 按键事件上的简单HTML输入不起作用
- 选择同一文件时未触发HTML输入文件选择事件
- 如何使文本、数字和日期html输入字段以一致的方式支持Ctrl+Z(撤消)
- 更改 html 输入字段中的占位符属性
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 持久性 HTML 输入占位符
- 将 html 输入转换为正确的编码
- 如何隐藏和显示 html 输入文本和段落