深入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添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
Nov 17 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
php实现递归抓取网页类实例
Apr 03 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
微信支付开发发货通知实例
Jul 12 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP 图片处理
Sep 16 PHP
PHP7新增函数
Mar 09 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
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
Python打印斐波拉契数列实例
2015/07/07 Python
浅谈Python的异常处理
2016/06/19 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
python简单贪吃蛇开发
2019/01/28 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
用Python制作音乐海报
2021/01/26 Python
危货运输企业安全生产责任书
2014/07/28 职场文书
个人典型事迹材料
2014/12/30 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
2019年房屋委托租赁合同范本(通用版)!
2019/07/17 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
HTTP中的Content-type详解
2022/01/18 HTML / CSS
如何在Python中妥善使用进度条详解
2022/04/05 Python
MySQL主从切换的超详细步骤
2022/06/28 MySQL