- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP教程 Magi的c quotes
PHP教程 Magic quotes
对于 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,数据必须保持一致。那么下面的代码可以帮助您
?php
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value) {
$value = is_array($value) ?
array_map(stripslashes_deep, $value) :
stripslashes($value);
return $value;
}
对于 Magic quotes,对于 PHPer 而言是个老生常谈的问题。今天无意间看到篇文章,结合PHP Manual 以及其回复,在这里做个简单的汇总。
简而言之,Magic quotes 开启后会自动转义输入的数据。其中,所有的单引号()、双引号()、反斜线、和 NULL 字符都会被转义(增加个反斜线),其实这操作本质上调用的是 addslashes 函数。
为什么使用 Magic quotes
方便快捷
PHP 的设计者在设计之初的构想就是能够快速方便的编程。例如插入数据库时,Magic quotes 会自动将数据转义,这很方便。
对初学者有利
Magic quotes 可以从一定程度上,让初学者带离脚本的安全风险。例如在没有任何保护措施的代码下,开启了 Magic quotes 后会少很多的风险,例如注入问题。当然,单一使用此方法,并不能完全阻止此类安全问题。
“我没有权限去关闭”
很显然你已经可能意识到了这个问题,但是主机空间并非完全由自己控制。
为什么不使用 Magic quotes
可移植性
无论此功能是否开启,它都会影响脚本的可移植性,因为它影响我们后续过滤数据的操作。
性能问题
在获取所有的外部数据之前都会被转义,这无疑会增加运行时的花销(而且并不是所有的数据都需要转义)。
造成困惑
正如上述
您可能关注的文档
最近下载
- 2024年六盘水市中考生物试题卷(含答案).docx
- 人教版小学数学五年级上册全册教案(含全册教学反思).pdf VIP
- 妇幼保健学知识--妇幼保健学绪论.ppt VIP
- 中移铁通校招笔试有多少题.pdf VIP
- 马德堡半球实验_经典儿童科普教学课件.ppt VIP
- 成都市田家炳中学数学新初一分班试卷含答案.doc VIP
- 体例格式11:《小型网络安装与调试》工学一体化课程教学进度计划表.pdf VIP
- 人教版道德与法治三年级下册全册教学设计.docx VIP
- 艺术概论20.主题三 探知 话题2 从杜尚说起——现代艺术悟读.pptx VIP
- 血液透析移植物动静脉内瘘护理中国专家共识(第1版)2025解读.pptx
文档评论(0)