深入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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
php的控制语句
Oct 09 PHP
php5.2.0内存管理改进
Jan 22 PHP
显示程序执行时间php函数代码
Aug 29 PHP
Drupal7连接多个数据库及常见问题解决
Mar 02 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
php中Ctype函数用法详解
Dec 09 PHP
php简单实现快速排序的方法
Apr 04 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
Python 绘图和可视化详细介绍
2017/02/11 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
python3 使用traceback定位异常实例
2020/03/09 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
VC++笔试题
2014/10/13 面试题
创联软件面试题笔试题
2012/10/07 面试题
上课随便讲话检讨书
2014/09/12 职场文书
大学生考试作弊检讨书
2014/09/21 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
行政处罚决定书
2015/06/24 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang