您的位置:首页 > 编程语言 > PHP开发

php处理sql注入问题 如何防止双重转义

2019-02-12 18:36 169 查看

<?php

//php防注入和XSS攻击通用过滤. 

//by qq:831937

$_GET
      
&& SafeFilter(
$_GET
);

$_POST
     
&& SafeFilter(
$_POST
);

$_COOKIE
   
&& SafeFilter(
$_COOKIE
);

 
 

function
SafeFilter (&
$arr
)

{  

      
if
(
is_array
(
$arr
))

     
{

          
foreach
(
$arr
as
$key
=>
$value
)

          
{

               
if
(!
is_array
(
$value
))

               
{

                    
if
(!get_magic_quotes_gpc())   
//不对magic_quotes_gpc转义过的字符使用addslashes(),避免双重转义。

                    
{

                         
$value
   
=
addslashes
(
$value
);   
//给单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)加上反斜线转义

                    
}

                    
$arr
[
$key
]         =htmlspecialchars(
$value
,ENT_QUOTES);  
//&,",',> ,< 转为html实体 &amp;,&quot;&#039;,&gt;,&lt;

 

               
}

               
else

               
{

                    
SafeFilter(
$arr
[
$key
]);

               
}

          
}

     
}

}

?>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: