简单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.youkuaiyun.com/lengyuezuixue/article/details/79031311

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值