All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
C#教程:套接字使用实例
SQL Server查询优化方法_[SQL Server教程]
ASP.NET应用程序安全性问题_[Asp.Net教程]
如何利用PHP和CSS改变网页文字大小_php资料_编程技术
asp.net2.0中关于ASP.NET,网站管理工具无法连接sql,server,数据库的处理_[Asp.Net教程]
visual c++程序中的文件类型
一定要远离毒品,网页恶意脚本代码大总结_JavaScript技术_编程技术
asp.net2.0中水晶报表的应用实例
C#,3.0新特性系列:隐含类型var_[Asp.Net教程]
ASP.NET,2.0服务器控件之客户端功能_[Asp.Net教程]
Reading number is top 10 pictures
From China fortress sora aoi4
XuRe xuan cool and refreshing photoes1
赵惟依写真3
Ashlynn Brooke a group sexy photo2
中国女孩大胆自拍,显露完美身材4
Summer is most suitable for young people to travel in China5
性感丰满身材火爆de美女2
移民小国也实惠2
The Soviet union swimsuit exposure in the 70 year1
西游日记4
Download software ranking
C语言教程TXT
JSP+Ajax Web development typical examples
终极变速大师Speeder3.26
Boxer Classic video3
Tram sex maniac 2 (H) rar bag15
I'm come from Beijing1
Proficient in JavaScript
Tram sex maniac 2 (H) rar bag17
Unix video tutorial10
双旗镇刀客B
归海一刀 published in(发表于) 2014/2/17 7:41:52 Edit(编辑)
保护代码安全,PHP如何进行注入_[PHP教程]

保护代码安全,PHP如何进行注入_[PHP教程]

保护代码安全,PHP如何进行注入_[PHP教程]

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

我们主要是从两点出发,因为我们的获取的变量一般都是通过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

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



添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.