我使用此功能写入MySQL数据库之前,剥去现场所有非数字:是否会清除所有非数字字符以有效地转义数据?
function remove_non_numeric($inputtext) {return preg_replace("/[^0-9]/","",$inputtext);
这是否有效躲避输入数据,以防止SQL注入?我可以在mysql_real_escape_string
中包装这个功能,但认为这可能是多余的。
我使用此功能写入MySQL数据库之前,剥去现场所有非数字:是否会清除所有非数字字符以有效地转义数据?
function remove_non_numeric($inputtext) {return preg_replace("/[^0-9]/","",$inputtext);
这是否有效躲避输入数据,以防止SQL注入?我可以在mysql_real_escape_string
中包装这个功能,但认为这可能是多余的。
当涉及到sql注入时,假设是所有的母亲bleep。无论如何将它包装在mysql_real_escape_string中。
它不会逃避数据,但它确实是OWASP推荐方法的一个示例。
通过从输入中删除除数字以外的所有数字,可以通过实施White list有效防止SQL注入。没有多少偏执可以使得到的字符串(在这个特定情况下)变为有效的SQL注入有效载荷。
但是,代码年龄和变化,并被误解,因为它由新开发人员继承。所以底线,正确的建议,最终的结果都是 - 通过以下3个步骤中的一个或多个主动防止SQL注入。按此顺序。永远。单。时间。
mysql_real_escape_string
属于此类别)。mysql_real_escape_string
不是所有反SQL注入的答案。它甚至不是最健壮的方法,但它的工作原理。剥离除数字外的所有东西都是白色的,列出了安全值,也是一个好主意 - 然而,它们都不如使用安全的API。
+1保持警惕,而且所有的业务。 –