php 防注入

本文介绍了三种PHP中防止SQL注入的方法:使用 addslashes 进行转义、通过限制关键字进行检查和利用正则表达式过滤非法字符。这些方法有助于提高应用程序的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、sql_injection
$_POST = sql_injection($_POST);
$_GET = sql_injection($_GET);
function sql_injection($content)
{
if (!get_magic_quotes_gpc()) {
if (is_array($content)) {
foreach ($content as $key=>$value) {
$content[$key] = addslashes($value);
}
} else {
addslashes($content);
}

return $content;

2、saftsql

/*php 防注入函数
string  $feifa  限制元素组成
如有非法字符跳转到上一页 返回 0  没有返回 1
//使用方法
$feifa=array("select","delete","from","update","create","destory","drop","alter","and","or","like","exec","count","*","chr","mid","master","truncate","char","declare",";","-","+");
$arrpostget=array("http://www.baidu.select cretecomdmin","wangw");
echo saftsql($feifa,$arrpostget);
*/
function saftsql($feifa,$arrpostget){
// $arrpostget=array_merge((array)$HTTP_PSOT_VARS,(array)$HTTP_GET_VARS);
  if($arrpostget){
         foreach($arrpostget as $key=>$value){
              for($i=0;$i<count($feifa);$i++){
                //找非法字符在$value中的位置
                $flag=strpos($value,$feifa[$i]);               
                if($flag)
                {                    
                 //echo "<script type=\"text/javascript\">alert('URL有非法字符');</script>";
                 //echo "<script type=\"text/javascript\">history.go(-1);</script>";
                 return 0;
                 exit;
                }else{
                    return 1;
                    }

              }
         }

      return 1;

3、FunStringExist

//然后在每个php文件前加include(“checkpostandget.php“);即可
//要过滤的非法字符 
$ArrFiltrate=array("\'\'",";","union"); 
//出错后要跳转的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($_GET,$_POST); 
}else{ 
foreach($_GET as $key=>$value){ 
$ArrPostAndGet[]=$value; 

foreach($HTTP_GET_VARS as $key=>$value){ 
$_POST[]=$value; 




//验证开始 
foreach($ArrPostAndGet as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){ 
echo "<script language='javascript'>alert('Neeao提示,非法字符');</script>"; 
if (empty($StrGoUrl)){ 
echo "<script language='javascript'>history.go(-1);</script>"; 
}else{ 
echo "<script language='javascript'>window.location=\'".$StrGoUrl."\';</script>"; 

exit; 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值