深入PHP magic quotes的详解


Posted in PHP onJune 17, 2013

特地查看了下手册,关于php  magic quotes,常见的几个设置如下,magic_quotes_gpc,magic_quotes_sybase,magic_quote_runtime,这几个函数是在php.ini中去配置的,从手册中可以看出从php5.3后已经废除了这些特性,所以强烈大家不要使用,在php.ini中关闭它。

深入PHP magic quotes的详解

这些函数的作用是对数据进行转义。防止sql注入的时候,很多人会这样写:

if(!get_magic_quotes_gpc()){
$post=addslashes($post);
}

如果开启了它们,会自动给你转义单引号(')、双引号(")、反斜线(\)与 NUL(null字符),其实就相当于调用addslashes函数。你可能会说这样不是很好嘛,安全性更高了,但是,你考虑代码移植性了吗?另外,对于上所有gpc($_GET,$_POST,$_COOKIE)的数据你都进行转义是否有必要?开销有多大?下面PHP点点通(phpddt.com)就对手册中关于Magic Quotes的详细说明:

1.magic_quotes_gpc

magic_quotes_gpc这个是用来设置GPC($_GET、$_POST、$_COOKIE)的魔术引用状态(在PHP4中也包含$_ENV)。当开启时,所有的单引号(single-quote),双引号(double quote),反斜线(backslash)和NUL's会被反斜线自动转义。当开启magic_quote_sybase为on时,只有单引号(singgle-quote)会被单引号转义为'',双引号、反斜线(backslash)和NUL's不受影响不会被转义。

深入PHP magic quotes的详解

2.magic_quote_runtime

magic_quote_runtime如果开启该选项,许多返回外部数据(数据库、文本)的函数将会被反斜线(backslash)转义。如果也开启magic_quote_sybase,则只有单引号(single-quote)会被单引号转义。

深入PHP magic quotes的详解

3.magic_quotes_sybase

magic_quotes_sybase如果设置此选项开启、在magic_quotes_gpc,magic_quotes_runtime开启的情况下单引号‘会被单引号'转移而不是被反斜线\转义。同时、此设置会完全覆盖magic_quotes_gpc的设置,即使magic_quotes_gpc被设置为on,双引号“、反斜线\和NUL's也不会被转义。

深入PHP magic quotes的详解

PHP 相关文章推荐
PHP 得到根目录的 __FILE__ 常量
Jul 23 PHP
Apache服务器无法使用的解决方法
May 08 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 PHP
Yii视图CGridView实现操作按钮定义地址示例
Jul 14 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
laravel框架的安装与路由实例分析
Oct 11 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 14 PHP
php错误级别的设置方法
Jun 17 #PHP
PHP大小写问题:函数名和类名不区分,变量名区分
Jun 17 #PHP
修改php.ini以达到屏蔽错误信息并记录日志
Jun 16 #PHP
php fsockopen伪造post与get方法的详解
Jun 14 #PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 #PHP
PHP可变函数的使用详解
Jun 14 #PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 #PHP
You might like
php表单敏感字符过滤类
2014/12/08 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
js转换对象为xml
2017/02/17 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
教大家使用Python SqlAlchemy
2016/02/12 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
python梯度下降算法的实现
2020/02/24 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
python def 定义函数,调用函数方式
2020/06/02 Python
python适合做数据挖掘吗
2020/06/16 Python
python数据抓取3种方法总结
2021/02/07 Python
Python创建自己的加密货币的示例
2021/03/01 Python
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
Python里面如何实现tuple和list的转换
2012/06/13 面试题
信息管理员岗位职责
2013/12/01 职场文书
银行优秀员工事迹
2014/02/06 职场文书
《尊严》教学反思
2014/02/11 职场文书
办公室副主任职责范本
2014/03/08 职场文书
学前班评语大全
2014/05/04 职场文书
党校毕业个人总结
2015/02/28 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
初中团委工作总结
2015/08/13 职场文书