深入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 Notice: Undefined index 错误提示解决方法
Aug 29 PHP
如何使用FireFox插件FirePHP调试PHP
Jul 23 PHP
php函数间的参数传递(值传递/引用传递)
Sep 23 PHP
php利用cookies实现购物车的方法
Dec 10 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 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 microtime获取浮点的时间戳
2010/02/21 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
如何让您的中波更粗更长 - 中波框形天线制作
2021/03/10 无线电
js 表格隔行颜色
2009/12/02 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
Python正则表达式介绍
2012/08/06 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
python 循环while和for in简单实例
2016/08/16 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
基本款天堂:Everlane
2017/05/13 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
外贸员简历中的自我评价
2014/03/04 职场文书
元旦晚会感言
2014/03/12 职场文书
财务人员担保书
2014/05/13 职场文书
单位同意报考证明
2015/06/17 职场文书
公司出差管理制度范本
2015/08/05 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
详解CSS3浏览器兼容
2022/12/24 HTML / CSS