PHP防注入注意要过滤的信息基本是get,post,然后对于sql就是我们常用的查询,插入等等sql命令了,下面我给各位整理两个简单的例子,希望这些例子能给你网站带来安全.
PHP防注入类代码如下:
复制代码
代码如下:
JasonWei */ class Params { public $get = array();
public $post = array(); function __construct()
{ if (!emptyempty($_GET)) { foreach ($_GET as $key => $val) {
if (is_numeric($val)) { $this->get[$key] =
$this->getInt($val); } else { $this->get[$key] =
$this->getStr($val); } } } if (!emptyempty($_POST)) {
foreach ($_POST as $key => $val) { if (is_numeric($val)) {
$this->post[$key] = $this->getInt($val); } else {
$this->post[$key] = $this->getStr($val); } } }
} public function getInt($number) { return
intval($number); } public function getStr($string)
{ if (!get_magic_quotes_gpc()) { $string = addslashes($string);
} return $string; } public function
checkInject($string) { return
eregi('select|insert|update|delete|/*|*|../|./|union|into|load_file|outfile',
$string); } public function verifyId($id = null) {
if (!$id || $this->checkInject($id) || !is_numeric($id)) { $id
= false; } else { $id = intval($id); } return $id;
} } ?>例子二,代码如下:
复制代码
代码如下:
说明: 判断传递的变量中是否含有非法字符 如$_POST、$_GET 功能:
防注入 *************************/ //要过滤的非法字符
$ArrFiltrate=array("'","or","and","union","where");
//出错后要跳转的url,不填则默认前一页 $StrGoUrl=""; //是否存在数组中的值
function FunStringExist($StrFiltrate,$ArrFiltrate){ foreach
($ArrFiltrate as $key=>$value){ if
(eregi($value,$StrFiltrate)){ return true; } }
return false; } //合并$_POST 和 $_GET
if(function_exists(array_merge)){
$ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
}else{ foreach($HTTP_POST_VARS as $key=>$value){
$ArrPostAndGet[]=$value; } foreach($HTTP_GET_VARS as
$key=>$value){ $ArrPostAndGet[]=$value; } }
//验证开始 foreach($ArrPostAndGet as $key=>$value){ if
(FunStringExist($value,$ArrFiltrate)){ echo "";
if (emptyempty($StrGoUrl)){ echo
"history.go(-1);";
}else{ echo
"window.location='".$StrGoUrl."';";
} exit; } }
/***************结束防止PHP注入*****************/ ?>
小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!
免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!