深入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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
一步一步学习PHP(8) php 数组
Mar 05 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
ThinkPHP框架设计及扩展详解
Nov 25 PHP
php+mysql实现无限分类实例详解
Jan 15 PHP
php socket通信(tcp/udp)实例分析
Feb 14 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
PHP生成(支持多模板)二维码海报代码
Apr 30 PHP
详解PHP用mb_string处理windows中文字符
May 26 PHP
php双向队列实例讲解
Nov 17 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 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
php使用环形链表解决约瑟夫问题完整示例
2018/08/07 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
使用js画图之饼图
2015/01/12 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
Python中处理字符串之isalpha()方法的使用
2015/05/18 Python
Python做简单的字符串匹配详解
2017/03/21 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
师范生实习自我鉴定
2013/11/01 职场文书
精通CAD能手自荐书
2014/01/31 职场文书
建设工地安全标语
2014/06/07 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书