首页 > 代码库 > php get_magic_quotes_gpc() addslashes()
php get_magic_quotes_gpc() addslashes()
最近学了学PHP,看到这段代码
function daddslashes($str){
return (!get_magic_quotes_gpc())?addslashes($str):$str;
}
发现get_magic_quotes_gpc())和addslashes()函数不太熟悉,就查了下资料,如下:
get_magic_quotes_gpc();就是取得php环境变量magic_quotes_gpc的值。如果值为1时,表示开启;如果为0时,表示该配置关闭!
get_magic_quotes_gpc();值为1,表示开启。那么 php会自动为POST、GET、COOKIE传过来的参数值自动增加转义字符“\”,来确保这些数据的安全性。尤其是防止SQL注入。
get_magic_quotes_gpc();值为0,表示关闭。php解析器不会自动为POST、GET、COOKIE传过来的参数值加转义字符“\”,那么这时就用addslashes函数来转义参数了。
get_magic_quotes_gpc();未开启,用addslashes函数过滤参数防止注入示例:
<?php
$str=$_POST[‘str‘];
if(!get_magic_quotes_gpc()){//首先判断未开启
$newStr=addslashes($str);//然后用addslashes函数过滤
}
?>
addslashes() 函数在指定的预定义字符前添加反斜杠。
这些预定义字符是:
- 单引号 (‘)
- 双引号 (")
- 反斜杠 (\)
- NULL
- 默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
- 讲得还蛮清楚的,所以就收藏起来了!!!
注明:源自网络
php get_magic_quotes_gpc() addslashes()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。