完成的要领:
PHP自带了要领能够将sql语句转义,在数据库查询语句等的须要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。(引荐进修:PHP编程从入门到通晓)
string addslashes ( string $str )//该函数返回一个字符串
范例
<?php $str = "Is your name O'reilly?"; // 输出: Is your name O\'reilly? echo addslashes($str); ?>
ThinkPHP自动给供应了平安防护,关于字符串范例的数据,ThinkPHP都邑举行escape_string处置惩罚(real_escape_string,mysql_escape_string)
要有用的防备SQL注入题目,官方发起:
查询前提只管运用数组体式格局,这是更加平安的体式格局;
假如不得已必需运用字符串查询前提,运用预处置惩罚机制;
运用自动考证和自动完成机制举行针对运用的自定义过滤;
假如环境许可,只管运用PDO体式格局,并运用参数绑定。
查询前提预处置惩罚
这类体式格局类似于在查询语句中放入一个占位符,然后经由过程数组的情势传入参数
比方:
$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select(); $Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();
以上就是php怎样防备sql注入的细致内容,更多请关注ki4网别的相干文章!