您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

最全防止sql注入方法

2026/2/11 19:44:29发布6次查看
(1)mysql_real_escape_string -- 转义 sql 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 使用方法如下:
?
1
2
3
$sql= select count(*)asctr from users where username
='.mysql_real_escape_string($username).'and
password='. mysql_real_escape_string($pw).'limit 1;
使用 
mysql_real_escape_string()
 作为用户输入的包装器,就可以避免用户输入中的任何恶意 sql 注入。
(2) 打开magic_quotes_gpc来防止sql注入
php.ini中有一个设置:magic_quotes_gpc = off
这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,
比如把 ' 转为 \'等,对于防止sql注射有重大作用。
     如果magic_quotes_gpc=off,则使用addslashes()函数
(3)自定义函数
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
functioninject_check($sql_str) {
    returneregi('select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$sql_str);
}
functionverify_id($id=null) {
    if(!$id) {
        exit('没有提交参数!');
    }elseif(inject_check($id)) {
        exit('提交的参数非法!');
    }elseif(!is_numeric($id)) {
        exit('提交的参数非法!');
    }
    $id= intval($id);
return$id;
}
functionstr_check( $str) {
    if(!get_magic_quotes_gpc()) {
        $str= addslashes($str);// 进行过滤
    }
    $str= str_replace(_,\_,$str);
    $str= str_replace(%,\%,$str);
return$str;
}
functionpost_check($post) {
    if(!get_magic_quotes_gpc()) {
        $post= addslashes($post);
    }
    $post= str_replace(_,\_,$post);
    $post= str_replace(%,\%,$post);
    $post= nl2br($post);
    $post= htmlspecialchars($post);
return$post;
}
以上就介绍了最全防止sql注入方法,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product