简单SQL注入

简单SQL注入

防止SQL注入
    在脚本语言中,如Perl和PHP你可以对用户输入的数据进行转义从而来防止SQL注入。PHP的MySQl扩展提供了mysqli_real_escape_string()函数来转义特殊的输入字符。

if (get_magic_quotes_gpc()) {  
    $name = stripslashes($name);
}
$name = mysqli_real_escape_string($conn, $name); 
mysqli_query($conn, "SELECT * FROM users WHERE name='{$name}'");

Like语句中的注入
    like查询时,如果用户输入的值有"_"和"%",则会出现这种情况:用户本来只想查询"abcd_",查询结果中却有"abcd_"、"abcd"、"abcdf"等等;用户要查询"30%"(百分之三十)时也会出现问题。
    在PHP脚本中可以使用addcslashes()函数来处理以上情况,如下实例:

$sub = addcslashes(mysqli_real_escape_string($conn, "%something_"), "%_");
// $sub == \%something\_ 
mysqli_query($conn, "SELECT * FROM messages WHERE subject LIKE '{$sub}%'");


    addcslashes()函数在指定的字符前添加'\'。

语法格式:

addcslashes(string,characters)

参考:https://blog.csdn.net/lengyuezuixue/article/details/79031311

你可能感兴趣的:(sql注)