PHP防SQL注入检测方法

PHP防SQL注入检测方法

操作方法

  • 01

    <?php$referer  = $_SERVER['HTTP_REFERER'];$inpage   = $_SERVER['SCRIPT_NAME'];$ipaddr   = $_SERVER['REMOTE_ADDR'];$intime   = date('Y-m-d H:i:s');$sqlinarr_get  = array('cast', 'set', 'exec', 'insert', 'select', 'delete', 'update', 'execute', 'from', 'declare', 'varchar', 'script', 'iframe', '\'', '"', ';', '0x', '<', '>');$sqlinarr_post  = array('cast', 'exec', 'insert', 'select', 'delete', 'update', 'execute', 'from', 'declare', 'varchar', 'script', 'iframe');$sqlinarr_cookie = array('cast', 'set', 'exec', 'insert', 'select', 'delete', 'update', 'execute', 'from', 'declare', 'varchar', 'script', 'iframe'); //检测GET方式提交的数据if(isset($_GET)){ foreach($_GET as $getname => $getvalue){  foreach($sqlinarr_get as $invalue){   if(stripos($getvalue, $invalue) === false){    //do nothing   }else{    echo "<p>";    echo "参数中含有非法字符!";    echo "<br>";    echo "来源:".$referer;    echo "<br>";    echo "当前:".$inpage;    echo "<br>";    echo "时间:".$intime;    echo "<br>";    echo "IP:".$ipaddr;    echo "<br>";    echo "参数:".$getname;    echo "<br>";    echo "内容:".urlencode($getvalue);    echo "<br>";    echo "非法字符:".$invalue;    echo "</p>";    unset($_GET[$getname]);    die();   }  } }} //检测POST方式提交的数据if(isset($_POST)){ foreach($_POST as $getname => $getvalue){  foreach($sqlinarr_post as $invalue){   if(stripos($getvalue, $invalue) === false){    //do nothing   }else{    echo "<p>";    echo "参数中含有非法字符!";    echo "<br>";    echo "来源:".$referer;    echo "<br>";    echo "当前:".$inpage;    echo "<br>";    echo "时间:".$intime;    echo "<br>";    echo "IP:".$ipaddr;    echo "<br>";    echo "参数:".$getname;    echo "<br>";    echo "内容:".urlencode($getvalue);    echo "<br>";    echo "非法字符:".$invalue;    echo "</p>";    unset($_POST[$getname]);    die();   }  } }} //检测Cookie中的数据if(isset($_COOKIE)){ foreach($_COOKIE as $getname => $getvalue){  foreach($sqlinarr_cookie as $invalue){   if(stripos($getvalue, $invalue) === false){    //do nothing   }else{    echo "<p>";    echo "参数中含有非法字符!";    echo "<br>";    echo "来源:".$referer;    echo "<br>";    echo "当前:".$inpage;    echo "<br>";    echo "时间:".$intime;    echo "<br>";    echo "IP:".$ipaddr;    echo "<br>";    echo "参数:".$getname;    echo "<br>";    echo "内容:".urlencode($getvalue);    echo "<br>";    echo "非法字符:".$invalue;    echo "</p>";    unset($_COOKIE[$getname]);    die();   }  } }}?>

(0)

相关推荐

  • 对预防SQL注入的几点方法

    本文分析了网站数据库预防SQL注入的方法,并结合nat123分享了外网访问内网数据库的方法. 操作方法 01 预防数字注入: 很简单,因为ColID字段的类型是int的,那么我们只需要验证一下传递过来 ...

  • 如何检测SQL注入技术以及跨站脚本攻击

    在最近两年中,安全专家应该对网络应用层的攻击更加重视.因为无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制,如果你的网络应用程序开发者没有遵循安全代码进行开发,攻击者将通过80端口进入你的系统 ...

  • 网站被sql注入的修复方法

    近日,网站频频被黑.在网站里莫名其妙的多出一篇文 章,还有多出一组贴图.正在纳闷是谁可以登陆我的后台发表文章和图片的时候,我的qq弹出消息,一个陌生人给我发消息,说我的网站有漏洞,还说是他弄了我 的网 ...

  • 防止sql注入的几种方法

    在我们的项目开发中,常常面临的问题就是sql的注入,脚本攻击,如何才能使系统的代码更加的健壮,防止sql的注入呢,本文将介绍几种方法来防止sql的注入. 操作方法 01 JBDC方式查询,我们可以利用 ...

  • SQL注入攻击的方法有哪些

    据权威专家同居分析,绝大多数的网站遭受攻击都是SQl注入攻击,绝大多数的网站攻击都是可以避免的,不过由于大多数人的疏忽,造成好多网站都莫名其妙的"悲剧"了,这里小编帮大家洗漱一下s ...

  • SQL 注入技术详解

    1.1概述 1.2背景 1.3字符编码 2.1综合测试 2.2测试过程 2.3分析结果 3.1绕过验证 3.2 SELECT 3.2.1 直接利用 ' 号 3.2.2 基于UNION 3.2.3 利用 ...

  • 防护黑客必学招数 SQL注入拦截-MYIIS-VIF助你一臂之力

    首先,MYIIS-VIF为站长提供了2种方式的注入设置。 1. 全局自动SQL注入拦截。 2. 自己加入规则的拦截方式。 全局自动SQl注入拦截类似自己给用户添加了一些常用的SQL注入关键字拦截。这些 ...

  • 什么是sql注入漏洞?

    介绍一下什么是sql注入漏洞? 操作方法 01 解释起来有点困难,我们直接用实际案例演示吧. 首先,我们用Sql server 创建一个geek的数据库. 再创建一个"表_登录" ...

  • 简单分析什么是SQL注入漏洞

    现在很多人在入侵的过程中基本都是通过SQL注入来完成的,但是有多少人知道为什么会有这样的注入漏洞呢?有的会随口说着对于字符的过滤不严造成的.但是事实是这样吗?我们学这些,不仅要知其然,更要知其所以然! ...