深入PHP magic quotes的详解
2015-01-24信息快讯网
本篇文章是对php中的magic quotes进行了详细的分析介绍,需要的朋友参考下
特地查看了下手册,关于php magic quotes,常见的几个设置如下,magic_quotes_gpc,magic_quotes_sybase,magic_quote_runtime,这几个函数是在php.ini中去配置的,从手册中可以看出从php5.3后已经废除了这些特性,所以强烈大家不要使用,在php.ini中关闭它。
这些函数的作用是对数据进行转义。防止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不受影响不会被转义。
2.magic_quote_runtime
magic_quote_runtime如果开启该选项,许多返回外部数据(数据库、文本)的函数将会被反斜线(backslash)转义。如果也开启magic_quote_sybase,则只有单引号(single-quote)会被单引号转义。
3.magic_quotes_sybase
magic_quotes_sybase如果设置此选项开启、在magic_quotes_gpc,magic_quotes_runtime开启的情况下单引号‘会被单引号'转移而不是被反斜线\转义。同时、此设置会完全覆盖magic_quotes_gpc的设置,即使magic_quotes_gpc被设置为on,双引号“、反斜线\和NUL's也不会被转义。
PHP 动态生成静态HTML页面示例代码
php中文乱码怎么办如何让浏览器自动识别utf-8
php读取mysql的简单实例
PHP限制页面只能在微信自带浏览器访问的代码
使用PHP备份MYSQL数据的多种方法
那些年我们错过的魔术方法(Magic Methods)
php环境下利用session防止页面重复刷新的具体实现
PHP修改session_id示例代码
php-perl哈希算法实现(times33哈希算法)
PHP数据库链接类(PDO+Access)实例分享
wordpress自定义url参数实现路由功能的代码示例
基于PHP magic_quotes_gpc的使用方法详解
php抓取页面的几种方法详解
php错误级别的设置方法
PHP大小写问题:函数名和类名不区分,变量名区分
修改php.ini以达到屏蔽错误信息并记录日志
php fsockopen伪造post与get方法的详解
PHP可变函数的使用详解
深入Memcache的Session数据的多服务器共享详解
探讨Hessian在PHP中的使用分析
coreseek 搜索英文的问题详解
使用session判断用户登录用户权限(超简单)
探讨如何把session存入数据库
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法