`
hardy136
  • 浏览: 11643 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

PHP防SQL注入

阅读更多

 一般性的防注入,只要使用php的 addslashes 函数就可以了。

$_POST = sql_injection($_POST);   
$_GET = sql_injection($_GET);   

function sql_injection($content) {   
   if (!get_magic_quotes_gpc()) {   
      if (is_array($content)) {   
        foreach ($content as $key=>$value) {   
           $content[$key] = addslashes($value);   
        }   
      } else {   
        addslashes($content);   
      }   
   }   
   return $content;   
} 

  

/**    
 * 函数名称:inject_check()   
 * 函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全   
 * 参  数:$sql_str: 提交的变量    
 * 返 回 值:返回检测结果,ture or false    
 */     
function inject_check($sql_str) {       
  return eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str);    // 进行过滤      
} 

 /**
  * 函数名称:verify_id()    
  * 函数作用:校验提交的ID类值是否合法   
  * 参  数:$id: 提交的ID值    
  * 返 回 值:返回处理后的ID   
  */     
 function verify_id($id=null) {       
   if (!$id) { exit('没有提交参数!'); }    // 是否为空判断       
   elseif (inject_check($id)) { exit('提交的参数非法!'); }    // 注射判断       
   elseif (!is_numeric($id)) { exit('提交的参数非法!'); }    // 数字判断       
   $id = intval($id);    // 整型化             
   return  $id;       
 } 

/**
 * 函数名称:str_check()    
 * 函数作用:对提交的字符串进行过滤    
 * 参  数:$var: 要处理的字符串    
 * 返 回 值:返回过滤后的字符串   
 */     
function str_check( $str ) {       
   if (!get_magic_quotes_gpc()) {    // 判断magic_quotes_gpc是否打开      
     $str = addslashes($str);    // 进行过滤       
   }    
   $str = str_replace("_", "\_", $str);    // 把 '_'过滤掉       
   $str = str_replace("%", "\%", $str);    // 把 '%'过滤掉      
   return $str;        
 } 
 
/**    
 * 函数名称:post_check()    
 * 函数作用:对提交的编辑内容进行处理    
 * 参  数:$post: 要提交的内容    
 * 返 回 值:$post: 返回过滤后的内容   
 */     
 function post_check($post) {       
   if (!get_magic_quotes_gpc()) {    // 判断magic_quotes_gpc是否为打开       
     $post = addslashes($post);    // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤       
   }    
   $post = str_replace("_", "\_", $post);    // 把 '_'过滤掉      
   $post = str_replace("%", "\%", $post);    // 把 '%'过滤掉       
   $post = nl2br($post);    // 回车转换       
  $post = htmlspecialchars($post);    // html标记转换       
   return $post;       
 } 
 
分享到:
评论
1 楼 月影无痕 2013-06-17  
这种做法,并不能完全阻止SQL注入,你的文章存在误导读者之问题

在php 5+时代,强烈建议使用pdo参数化查询,可从根本上杜绝SQL注入.

你的做法,相当于开启了magic_quotes_gcp, 这个功能php5.4中已经去掉了,php 5.3中将是一个警告提示

你的代码在php 5.3中会产生一个警告提示, 而在php5.4中无法运行.

php 5.3与php 5.2性能差异巨大,该是时间考虑php 5.3了.

官方给出的 5.2和5.3性能对比:

http://www.php.net/manual/zh/features.gc.performance-considerations.php

相关推荐

    360提供的php防sql注入代码修改类

    从360提供的PHP防SQL注入代码改成的一个类,从SQL注入和HTTP跨站两个方面入手,解决网站存在安全风险的问题,希望对朋友们有所帮助。

    php防SQL注入的一个类

    一个php防SQL注入的一个类,参数检查并写入日志,SQL注入日志。

    php防SQL注入的一个类.zip

    分享一个php防SQL注入的一个类,参数检查并写入日志,SQL注入日志。

    360提供的php防sql注入代码修改类.zip

    从360提供的PHP防SQL注入代码改成的一个类,从SQL注入和HTTP跨站两个方面入手,解决网站存在安全风险的问题,希望对朋友们有所帮助。如果小伙伴们有更好的解决方案,欢迎发布过来大家一起学习交流。

    一种利用PHP防御SQL注入攻击的方法.pdf

    一种利用PHP防御SQL注入攻击的方法.pdf

    防SQL注入的php代码

    防SQL注入的php,通用防注入类

    SQL注入全面讲解技术文档

    4.编写通用的ASP防SQL注入攻击程序 22 5.利用instr()函数防止SQL注入攻击 23 6.跨站式SQL注入技巧 25 7. 防范Sql注入式攻击 27 8.PHP与SQL注入攻击 29 9.SQL注入攻击零距离 30 10.SQL注入技术和跨站脚本攻击的检测 ...

    SQL注入攻击与防御

    SQL注入是Internet上最危险、最有名的安全漏洞之一,本书是目前唯一一本专门致力于讲解SQL威胁的图书。本书作者均是专门研究SQL注入的安全专家,他们集众家之长,对应用程序的基本编码和升级维护进行全面跟踪,详细...

    PHP中全面阻止SQL注入式攻击

    PHP中全面阻止SQL注入式攻击 出于无赖,我也是办法了,要搞点分用啦!

    SQL注入原理及PHP防注入代码.pdf

    SQL注入基本概念,原理,防注入php代码以及 相关的图片实例,具体可下载查看。

    PHP网站设计中SQL注入的安全防御.pdf

    "PHP 网站设计中 SQL 注入的安全防御" 本文将深入探讨 PHP 网站设计中 SQL 注入的安全防御问题,讨论 SQL 注入的原理、类型、防御方法,并提出了一些实用的防御技术。 SQL 注入是一种常见的网络攻击方式,它可以...

    寻找sql注入的网站的方法(必看)

    方法一:利用google高级搜索,比如搜索url如.asp?... 您可能感兴趣的文章:Java面试题解析之判断以及防止SQL注入SQL注入原理与解决方法代码示例通过ibatis解决sql注入问题Win2003服务器防SQL注入神器–D盾_IIS防火墙

    SQL注入攻击与防御(安全技术经典译丛)

    本书作者均是专门研究SQL注入的安全专家,他们集众家之长,对应用程序的基本编码和升级维护进行全面跟踪,详细讲解可能引发SQL注入的行为以及攻击者的利用要素,并结合长期实践经验提出了相应的解决方案。针对SQL...

    PHP+Mysql 带SQL注入源码 下载

    PHP+Mysql 带SQL注入源码、下载解压部署到环境中去就行了。

    sql注入笔记

    SQL 注入笔记 SQL 注入是一种常见的 Web 应用程序漏洞,攻击者可以通过inject恶意 SQL 代码来访问、修改或控制数据库中的数据。本文将详细介绍 SQL 注入的基本概念、检测方法和防御策略。 什么是 SQL 注入? SQL ...

    基于PHP的web应用中的SQL注入及防御措施.pdf

    基于PHP的web应用中的SQL注入及防御措施 本文主要探讨了基于PHP的web应用中的SQL注入攻击和防御措施。SQL注入攻击是一种常见的网络攻击方式,通过在用户输入数据中注入恶意SQL代码,攻击者可以访问和控制数据库...

    PHPSQL注入漏洞学习

    详细讲解了PHPsql注入漏洞的类型,及其防范措施,对开发网站,深入了解sql的人会有一定的帮助。

    《sql注入》

    本节课程让您了解SQL注入的原理、SQL注入的危害、SQL注入攻击的手段、 ASP+Access注入、ASPX+MsSQL注入、PHP+MySQL注入、JSP+Oracle注 入;以及深入SQL注入攻击,如SQL盲注、利用操作系统、SQL注入的绕过、 如何防御...

    整理出来的SQL注入点关键字

    整理出来的关于SQL注入时所需要的关键字,很全面,覆盖了很多,包括asp,php等等

    sql注入原理及php防注入代码.doc

    sql注入原理及php防注入代码

Global site tag (gtag.js) - Google Analytics