PHP网站中整体防注入方法

转载 2006年06月16日 14:14:00

 

 

PHP网站中整体防注入方法

/*
 * Author: heiyeluren
 * Date: 2005-7-20
 * Blog: http://blog.csdn.net/heiyeshuwu
*/

今天写代码的时候猛然想到是不能能够通过一个文件来处理整个网站中所有可能出现注入的地方进行防范呢?这样就能够不用在每个程序里对每个变量进行过滤,节省了时间和代码。

我们主要是从两点出发,因为我们的获取的变量一般都是通过GET或者POST方式提交过来的,那么我们只要对GET和POST过来的变量进行过滤,那么就能够达到防止注入的效果。而且我们的PHP真是非常好,已经内置了$_GET和$_POST两个数组来存储所有变量,我们要做的工作就是过滤每个变量就可以了。

下面看具体的代码:

/* Author: heiyeluren */
/* 过滤所有GET过来变量 */
foreach ($_GET as $get_key=>$get_var)
{
    if (is_numeric($get_var))
 if (is_numeric($get_var)) {
  $get[strtolower($get_key)] = get_int($get_var);
 } else {
  $get[strtolower($get_key)] = get_str($get_var);
 }
}

/* 过滤所有POST过来的变量 */
foreach ($_POST as $post_key=>$post_var)
{
 if (is_numeric($post_var)) {
  $post[strtolower($post_key)] = get_int($post_var);
 } else {
  $post[strtolower($post_key)] = get_str($post_var);
 }
}

/* 过滤函数 */
//整型过滤函数
function get_int($number)
{
    return intval($number);
}
//字符串型过滤函数
function get_str($string)
{
    if (!get_magic_quotes_gpc()) {
 return addslashes($string);
    }
    return $string;
}

那么我们把以上代码放到一个公共的文件里,比如security.inc.php里面,每个文件里都include一下这个文件,那么就能够给任何一个程序进行提交的所有变量进行过滤了,就达到了我们一劳永逸的效果。

另外,还有一些其他的过滤方法,比如采用我以前使用的关键字过滤的方法:http://dev.csdn.net/article/71/71475.shtm
还可以参考三尺寒冰写的方法:http://www.fanghei.com/html/2005-06/20050607114008.htm

方法是不同的,但是核心就是为了我们的代码更加安全。

Author: heiyeluren
Date: 2005-7-20

 

【防注入】实践有效的网站防SQL注入(一)

几年前,网站中大多数都存在sql注入。sql注入在这几年可以说已经被广大网站管理者所认知,并在搭建网站的时候都能注意到网站防注入这一问题,但为什么我们EeSafe现在收录的网站中,还是有很大一部分存在...
  • MSDA
  • MSDA
  • 2012年03月29日 16:33
  • 922

php 过滤特殊字符及sql防注入代码

//方法一 //过滤',",sql语名 addslashes(); //方法二,去除所有html标签 strip_tags(); //方法三过滤可能产生代码 functio...

PHP防注入与伪静态

PHP防注入话不多说直接看代码PHP防注入,主要是为了防止恶意写入后台数据库; //防注入函数 function inject_check($sql_str){ $check=eregi('s...
  • youngqj
  • youngqj
  • 2011年03月24日 22:20
  • 1723

防网站漏洞扫描asp代码,也就是防注入的通用代码

把下面的代码保存在公用文件里就可以防止注入扫描了,比方说conn.asp 里,根据多年开发的经验建议将网站后台和前台分离,后台一个conn.asp 前台一个conn.asp 前台conn.asp加如下...
  • wkj001
  • wkj001
  • 2016年11月09日 14:29
  • 741

网站防注入系统

  • 2008年03月01日 13:17
  • 12KB
  • 下载

PHP防注入文件

  • 2016年10月13日 09:33
  • 3KB
  • 下载

PHP mysql防注入

在现在各种黑客横行的时候,如何实现自己php代码安全,保证程序和服务器的安全是一个很重要的问题,我随便看了下关于php安全的资料,并不是很多,至少比asp少多了,呵呵,于是就想写点东西,来防止这些可能...

PHP防注入攻击过滤HTML代码函数

/***** 说明:  * 当附合要求的参数传递进filter函数后,filter()函数首先  * 把要字串中所有要过滤的标签$tag通过preg_match_all()  * 取出来,然后循环pr...

【转】PHP SQL防注入的一些经验

产生原因   一方面自己没这方面的意识,有些数据没有经过严格的验证,然后直接拼接 SQL 去查询。导致漏洞产生,比如:   $id  = $_GET['id'];   $sql = ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP网站中整体防注入方法
举报原因:
原因补充:

(最多只允许输入30个字)