PHP教程:Magic quotes-Php-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝27
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:128回复:0

  PHP教程:Magic quotes

楼主#
更多 发布于:2016-05-20 18:58

简而言之,Magic quotes

敞开后会主动转义输入的数据。其间,一切的单引号(')、双引号(")、反斜线、和 NULL 字符都会被转义(添加个反斜线),本来这操作本质上调用的是

addslashes 函数。

关于 Magic quotes,关于 PHPer

而言是个陈词滥调的疑问。今日无意间看到篇文章,联系PHP Manual 以及其回复,在这里做个简略的汇总。

简而言之,Magic quotes

敞开后会主动转义输入的数据。其间,一切的单引号(')、双引号(")、反斜线、和 NULL 字符都会被转义(添加个反斜线),本来这操作本质上调用的是

addslashes 函数。

为何运用 Magic quotes

便利快捷

PHP 的规划者在规划之初的设想即是能够迅速便利的编程。例如刺进数据库时,Magic quotes

会主动将数据转义,这很便利。

对初学者有利

Magic quotes

能够从必定程度上,让初学者带离脚本的安全危险。例如在没有任何保护措施的代码下,敞开了 Magic quotes

后会少许多的危险,例如写入疑问。当然,单一运用此办法,并不能彻底阻挠此类安全疑问。

“我没有权限去封闭”

很明显你现已也许认识到了这个疑问,可是主机空间并非彻底由自个操控。

为何不运用 Magic quotes

可移植性

不管此功用是不是敞开,它都会影响脚本的可移植性,由于它影响咱们后续过滤数据的操作。

功用疑问

在获取一切的外部数据之前都会被转义,这无疑会添加运行时的花销(并且并不是一切的数据都需求转义)。

形成迷惑

正如上述所言,并非一切的数据都需求被转义。有也许呈现的一种状况,即是当你为了获取未被转义的数据,而“张狂的”运用

stripslashes 函数。

PHP6 现已不支持

PHP 的规划者明显现已认识到了自个的“过错”,所以在 PHP6 中现已将其抛弃。

怎么禁用 Magic quotes

依照自个观念,运用 php.ini 配置文件大局禁用 Magic quotes

是最靠谱的。参阅下面的代码

; Magic quotes;; Magic quotes for incoming

GET/POST/Cookie data.magic_quotes_gpc = Off; Magic quotes for runtime-generated

data, e.g. data from SQL, from exec(), etc.magic_quotes_runtime = Off; Use

Sybase-style magic quotes (escape ' with '' instead of ').magic_quotes_sybase =

Off

可是线上的主机也许无法让你修正 php.ini 文件,那么能够运用 .htaccess

文件禁用,参加下面的代码

php_flag magic_quotes_gpc Off

上述可移植的代码而言,不管是不是禁用

magic_quotes,数据有必要保持一致。那么下面的代码能够帮助您

<?phpif (get_magic_quotes_gpc()) {    function

stripslashes_deep($value) {        $value = is_array($value) ?          

 array_map('stripslashes_deep', $value) :            stripslashes($value);      

 return $value;    }          GET     = array_map('stripslashes_deep',          

               GET);                              POST    =

array_map('stripslashes_deep',                          POST);                  

           COOKIE  = array_map('stripslashes_deep',                        

 COOKIE);                              REQUEST = array_map('stripslashes_deep',

                         REQUEST);}

优质IT资源分享社区[font=Tahoma  ]为你提供此文。[font=Tahoma  ]

[font=Tahoma  ]本站有大量优质php教程视频,资料等资源,包含php基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。[font=Tahoma  ]

php教程视频

优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客