当前位置: 首页 > 图文教程 > 网络编程 > PHP > 保护代码安全,PHP如何进行注入

PHP
[PHP]实用函数3
[PHP]实用函数4
[PHP]实用函数5
[PHP]实用函数6
[PHP]实用函数7
[PHP]实用函数8
[PHP]实用函数9
[PHP]实用函数10
表单复选框向PHP传输数据的代码
PHP编程中字符串处理的5个技巧小结
php Mysql日期和时间函数集合
分页详解 从此分页无忧(PHP+mysql)
PHP 文件上传进度条的两种实现方法的代码
php a simple smtp class
利用PHP制作简单的内容采集器的代码
php代码把全角数字转为半角数字
php获得当前的脚本网址
php字符串截取中文截取2,单字节截取模式
php下过滤HTML代码的函数
修改php.ini实现Mysql导入数据库文件最大限制的修改方法

保护代码安全,PHP如何进行注入


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 242 ::
收藏到网摘: n/a

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

下面看具体的代码:
/*
PHP开发资源网 = 全球最大的PHP中文社群 = PHPer的网上家园
*/

/* Author: heiyeluren */
/* 过滤所有GET过来变量 */
foreach ($_GET as $get_key=%26gt;$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=%26gt;$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

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