mysql防注入函数

本文深入探讨了PHP中的预处理字符串与SQL注入防御策略,包括使用addslashes与mysql_real_escape_string函数的原理与应用,强调了在数据库操作中正确转义字符串的重要性,以确保数据安全。

1.addslashes(): 函数返回在预定义字符之前添加反斜杠的字符串。

预定义的字符有:
    单引号(')
    双引号(")
    反斜杠(\)
    NULL

eg:

if(!get_magic_quotes_gpc()){
       addslashes($str);
}

2.mysql_real_escape_string(): 函数转义 SQL 语句中使用的字符串中的特殊字符。

下列字符受影响:
  \x00
  \n
  \r
  \
  '
  "
  \x1a

注:mysql_escape_string 与mysql_real_escape_string() 完全一样,除了 mysql_real_escape_string() 接受的是一个连接句柄并根据当前字符集转移字符串之外。mysql_escape_string() 并不接受连接参数,也不管当前字符集设定。
mysql_escape_string在PHP5.3中已经弃用这种方法,mysql_real_escape_string()也即将被移除
eg:
con=mysqlconnect(localhost,hello,321);mysqlrealescapestring(str);
以上是以往常用方法,(注:mysql_query自 PHP 5.5.0 起已废弃,并在将来会被移除):
完美解决方案就是使用拥有Prepared Statement机制的PDO和MYSQLi来代替

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值