我只是在考虑清理数据以防止注入攻击的最佳方法。有些人喜欢在输出之前立即清理,或者在插入数据库之前立即清理......但我看到的问题是双重的:(1)如果你错过了一个参数/变量怎么办?(2) 如果您过度消毒怎么办?并不是说它会损害输出,但是对您已经知道是安全的东西进行消毒没有多大意义。
例如,在 PHP 中,而不是使用$_GET
,$_POST
我不能用类似的东西来包装它们:
function get($var) {
return my_sanitizer($_GET[$var]);
}
或者这还不够吗?恶意代码还能潜入何处?
阅读下面的答案后,我意识到这个问题有点愚蠢。这取决于您是插入数据库还是输出 HTML。在这种情况下,也许最好在使用前进行。没关系,包装输出方法也很容易......