这是示例代码:
include("db_connect.php");
//
function foo($string){
$s_array = array("'", '"');
$result = str_replace($s_array, "\\", $string);
return $result;
}
//
$first_var = $_POST['first_var'];
$second_var = intval($_POST['second_var']);
//
$first_var_result = foo($first_var);
//
mysql_query("UPDATE some_table SET first_column='".$first_var_result."', second_column='".$second_var."' WHERE id='id'");
当$ _POST [' first_var']等于'时, foo 功能用\替换' ,而mysql返回ERROR。 这不是我的代码。如果这段代码易受攻击(SQL注入),我对此感兴趣吗?感谢。
答案 0 :(得分:0)
不是这一个,但你非常接近。如果first_var_result
以'
或"
结尾,则替换\
将在SQL查询中转义撇号,second_var
将作为代码执行。如果你也可以使用foo
来转义它,那么你可以使用SQL注入。