深入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 相关文章推荐
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
ThinkPHP之A方法实例讲解
Jun 20 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
php提交表单发送邮件的方法
Mar 20 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
PHP hex2bin()函数用法讲解
Feb 25 PHP
PHP+MySql实现一个简单的留言板
Jul 19 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&MYSQL留言板源码
2020/07/19 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
JS操作数据库的实例代码
2013/10/17 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
2017/03/02 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
总结Python编程中函数的使用要点
2016/03/20 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
python中使用print输出中文的方法
2018/07/16 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
Python tkinter和exe打包的方法
2020/02/05 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
自主招生自荐信
2013/12/08 职场文书
小学教师管理制度
2014/01/18 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
高三霸气励志标语
2014/06/24 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
单位授权委托书范文
2014/08/02 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
员工辞职信范文
2015/03/02 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书