什么是输入验证的一般最佳实践?

时间:2010-02-27 16:03:33

标签: security encoding validation

与使用IRI防止字符遗漏表示,欺骗或字符注入相关的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

没有一个银弹可以防止所有涉及注入控制字符的攻击。漏洞高度依赖于数据的使用方式。例如,xss使用控制字符<>,其中SQL注入使用控制字符'"\,混合这两个过滤器没有意义。

可以使用正则表达式的集合来确保数据在使用之前是有效的。可以使用特定的正则表达式来逐个功能地防止功能上的特定漏洞。输入验证超出了安全领域,并且通常是程序正常工作所必需的。

正则表达式并不总是完成工作的最佳方式。例如,如果你使用的是mysql库,那么应该有函数调用mysql_real_escape_string(),它确保mysql识别的所有控制字符都被正确转义。使用此功能而不是尝试编写自己的安全系统符合您的最佳利益,重新发明轮子是糟糕的工程,并且在安全系统方面可能是灾难性的。