当前位置:  编程技术>php

防止sql注入方法与实例代码

    来源: 互联网  发布时间:2014-08-30

    本文导语:  在php教程中,我们经常会看到如何防止sql注入的方法,本节也不例外,为大家收集并介绍php是如何防范sql注入的,一起来看看吧。 1)mysql_real_escape_string -- 转义 sql语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 ...

在php教程中,我们经常会看到如何防止sql注入的方法,本节也不例外,为大家收集并介绍php是如何防范sql注入的,一起来看看吧。

1)mysql_real_escape_string -- 转义 sql语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集
使用方法:
 

代码示例:
$sql = "select count(*) as ctr 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)自定义函数
 

代码示例:
function inject_check($sql_str) {
    return eregi('select|insert|and|or|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str);
}
 
function verify_id($id=null) {
    if(!$id) {
        exit('没有提交参数!');
    } elseif(inject_check($id)) {
        exit('提交的参数非法!');
    } elseif(!is_numeric($id)) {
        exit('提交的参数非法!');
    }
    $id = intval($id);
    
    return $id;
}
 
function str_check( $str ) {
    if(!get_magic_quotes_gpc()) {
        $str = addslashes($str); // 进行过滤
    }
    $str = str_replace("_", "_", $str);
    $str = str_replace("%", "%", $str);
    
   return $str;
}
 
function post_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;
}
您可能感兴趣的文章:
  • php防止sql注入函数用法
  • php防止sql注入函数(discuz)
  • php防范sql注入方法与实例代码
  • php防SQL注入代码(360提供)
  • php防范SQL注入攻击与XSS攻击的方法详解
  • php防sql注入函数mysql_real_escape_string解析
  • 学习使用PDO查询Mysql来避免SQL注入风险
  • 很好用的php防止sql注入漏洞过滤函数的代码
  • php防止sql注入正则过滤一例

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • asp.net防止页面刷新重复提交的代码
  • 如何在ASP的frame框架中屏蔽右键,以防止查看页面的源代码?
  • Python中使用urllib2防止302跳转的代码例子
  • 防止ARP攻击的shell代码
  • asp.net防止刷新重复提交的方法与代码
  • php文件下载(防止中文文件名乱码)的示例代码
  • asp.net 防止刷新重复提交的代码(禁用工具栏刷新按钮 变灰)
  • php防止刷流量攻击实现代码
  • 防止shell脚本重复执行的代码
  • c#防止多次运行代码收集分享
  • 请问socket编程中是如何防止别人恶意进行数据包复制?
  • 程序中如何防止文件操作冲突?
  • sqlserver中如何防止数据库被下载
  • Asp.net防止重复提交的实现方法
  • 防止反编译的功能
  • 如何防止没有权限的人由于知道url,直接输入url,来察看文件呢?
  • 如何防止JtextArea里的文字被用户选择并copy???
  • 如何防止用户更新页面刷新计数器!
  • 怎样防止非本域的form提交
  • 请问Apache怎样防止CC攻击?
  • MySQL防止delete命令删除数据的两种方法
  • 请教怎么让计数器防止刷新???
  • 关于qmail里smtp,pop3,vpopmail对防止垃圾邮件relay的问题
  • 如何在一个用户对application操作时防止别的用户对它操作?(好难啊)
  • jquery防止重复执行动画避免页面混乱
  • 如何防止按浏览器右上角的"x" 来关闭浏览器
  • 如何防止IE缓存jsp文件
  • 如何防止Tomcat缓存beans??
  • 请问:如何防止他人进入系统操作(急!)
  • 如果防止JDialog被改变大小


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3