解析Sql注入的MYSQL字符串

时间:2015-08-28 09:53:56

标签: sql mysqli sql-injection

我正在请求有关最佳方法/函数的帮助,以解析字符串AFTER,它已经是参数。 我已经有很多很多MySql行,避免SQL注入的prepare语句方法是不可能的,因为我没有时间。在我打电话之前,是否有任何函数可以解析字符串上的scape字符:

//$sql_query_string_CLEAN = THE PLACE THE PARSING FUCNTION($sql_query_string);
    mysql_query($sql_query_string_CLEAN, $connection);

1 个答案:

答案 0 :(得分:2)

根据定义,不可能。举例说明:

您有这样的查询:

SELECT * FROM foo WHERE bar = "$baz"

注射后,它变为:

SELECT * FROM foo WHERE bar = "42" OR "" = ""

嗯......这是一个有效的SQL语句!您无法追溯地找出<​​em>您的意思。您需要确保在创建查询时保留您的预期含义。逃避或更好的参数化是唯一的方法。

你当然可以尝试向后弯腰并提出你想要的任何启发式和人工智能,但你永远无法正确地完成这一过程。它只是变成了一个猫捉老鼠的游戏,谁可以提出更聪明的解决方法。

"" = ""太明显了?好吧,让我们试试"a" = "a"。太明显了? SUBSTR(bar, 1, 0) = "" ...玩得开心,但绝不会在制作中这样做。