深入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,ajax实现分页
Mar 27 PHP
PHP文件注释标记及规范小结
Apr 01 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
php函数实现判断是否移动端访问
Mar 03 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
php微信高级接口群发 多客服
Jun 23 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 PHP
laravel 判断查询数据库返回值的例子
Oct 11 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
类的另类用法--数据的封装
2006/10/09 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
视觉直观感受若干常用排序算法
2017/04/13 Python
Python中optparser库用法实例详解
2018/01/26 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
python第三方库学习笔记
2020/02/07 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
联谊会主持词
2014/03/26 职场文书
班委竞选演讲稿
2014/04/28 职场文书
商场促销活动策划方案
2014/08/18 职场文书
国企干部对照检查材料
2014/08/22 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
党员民主评议自我评价
2014/10/20 职场文书
上班迟到检讨书
2015/05/06 职场文书
Go语言 详解net的tcp服务
2022/04/14 Golang
Go 内联优化让程序员爱不释手
2022/06/21 Golang
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL
nginx配置指令之server_name的具体使用
2022/08/14 Servers