PHP教程 Magic quotes.docx

上传人:b****5 文档编号:2799029 上传时间:2022-11-15 格式:DOCX 页数:14 大小:16.06KB
下载 相关 举报
PHP教程 Magic quotes.docx_第1页
第1页 / 共14页
PHP教程 Magic quotes.docx_第2页
第2页 / 共14页
PHP教程 Magic quotes.docx_第3页
第3页 / 共14页
PHP教程 Magic quotes.docx_第4页
第4页 / 共14页
PHP教程 Magic quotes.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

PHP教程 Magic quotes.docx

《PHP教程 Magic quotes.docx》由会员分享,可在线阅读,更多相关《PHP教程 Magic quotes.docx(14页珍藏版)》请在冰豆网上搜索。

PHP教程 Magic quotes.docx

PHP教程Magicquotes

PHP教程Magicquotes

对于Magicquotes,对于PHPer而言是个老生常谈的问题。

今天无意间看到篇文章,结合PHPManual以及其回复,在这里做个简单的汇总。

简而言之,Magicquotes开启后会自动转义输入的数据。

其中,所有的单引号(')、双引号(")、反斜线、和NULL字符都会被转义(增加个反斜线),其实这操作本质上调用的是addslashes函数。

为什么使用Magicquotes

方便快捷

PHP的设计者在设计之初的构想就是能够快速方便的编程。

例如插入数据库时,Magicquotes会自动将数据转义,这很方便。

对初学者有利

Magicquotes可以从一定程度上,让初学者带离脚本的安全风险。

例如在没有任何保护措施的代码下,开启了Magicquotes后会少很多的风险,例如注入问题。

当然,单一使用此方法,并不能完全阻止此类安全问题。

“我没有权限去关闭”

很显然你已经可能意识到了这个问题,但是主机空间并非完全由自己控制。

为什么不使用Magicquotes

可移植性

无论此功能是否开启,它都会影响脚本的可移植性,因为它影响我们后续过滤数据的操作。

性能问题

在获取所有的外部数据之前都会被转义,这无疑会增加运行时的花销(而且并不是所有的数据都需要转义)。

造成困惑

正如上述所言,并非所有的数据都需要被转义。

有可能出现的一种情况,就是当你为了获取未被转义的数据,而“疯狂的”使用stripslashes函数。

PHP6已经不支持

PHP的设计者显然已经意识到了自己的“错误”,所以在PHP6中已经将其废弃。

如何禁用Magicquotes

按照本人观点,使用php.ini配置文件全局禁用Magicquotes是最靠谱的。

参考下面的代码

;Magicquotes

;

;MagicquotesforincomingGET/POST/Cookiedata.

magic_quotes_gpc=Off

;Magicquotesforruntime-generateddata,e.g.datafromSQL,fromexec(),etc.

magic_quotes_runtime=Off

;UseSybase-stylemagicquotes(escape'with''insteadof').

magic_quotes_sybase=Off

然而线上的主机可能无法让你修改php.ini文件,那么可以使用.htaccess文件禁用,加入下面的代码

php_flagmagic_quotes_gpcOff

上述可移植的代码而言,无论是否禁用magic_quotes,数据必须保持一致。

那么下面的代码可以帮助您

php

if(get_magic_quotes_gpc()){

functionstripslashes_deep($value){

$value=is_array($value)?

array_map('stripslashes_deep',$value):

stripslashes($value);

return$value;

}

对于Magicquotes,对于PHPer而言是个老生常谈的问题。

今天无意间看到篇文章,结合PHPManual以及其回复,在这里做个简单的汇总。

简而言之,Magicquotes开启后会自动转义输入的数据。

其中,所有的单引号(')、双引号(")、反斜线、和NULL字符都会被转义(增加个反斜线),其实这操作本质上调用的是addslashes函数。

为什么使用Magicquotes

方便快捷

PHP的设计者在设计之初的构想就是能够快速方便的编程。

例如插入数据库时,Magicquotes会自动将数据转义,这很方便。

对初学者有利

Magicquotes可以从一定程度上,让初学者带离脚本的安全风险。

例如在没有任何保护措施的代码下,开启了Magicquotes后会少很多的风险,例如注入问题。

当然,单一使用此方法,并不能完全阻止此类安全问题。

“我没有权限去关闭”

很显然你已经可能意识到了这个问题,但是主机空间并非完全由自己控制。

为什么不使用Magicquotes

可移植性

无论此功能是否开启,它都会影响脚本的可移植性,因为它影响我们后续过滤数据的操作。

性能问题

在获取所有的外部数据之前都会被转义,这无疑会增加运行时的花销(而且并不是所有的数据都需要转义)。

造成困惑

正如上述所言,并非所有的数据都需要被转义。

有可能出现的一种情况,就是当你为了获取未被转义的数据,而“疯狂的”使用stripslashes函数。

PHP6已经不支持

PHP的设计者显然已经意识到了自己的“错误”,所以在PHP6中已经将其废弃。

如何禁用Magicquotes

按照本人观点,使用php.ini配置文件全局禁用Magicquotes是最靠谱的。

参考下面的代码

;Magicquotes

;

;MagicquotesforincomingGET/POST/Cookiedata.

magic_quotes_gpc=Off

;Magicquotesforruntime-generateddata,e.g.datafromSQL,fromexec(),etc.

magic_quotes_runtime=Off

;UseSybase-stylemagicquotes(escape'with''insteadof').

magic_quotes_sybase=Off

然而线上的主机可能无法让你修改php.ini文件,那么可以使用.htaccess文件禁用,加入下面的代码

php_flagmagic_quotes_gpcOff

上述可移植的代码而言,无论是否禁用magic_quotes,数据必须保持一致。

那么下面的代码可以帮助您

___FCKpd___2

GET=array_map('stripslashes_deep',

对于Magicquotes,对于PHPer而言是个老生常谈的问题。

今天无意间看到篇文章,结合PHPManual以及其回复,在这里做个简单的汇总。

简而言之,Magicquotes开启后会自动转义输入的数据。

其中,所有的单引号(')、双引号(")、反斜线、和NULL字符都会被转义(增加个反斜线),其实这操作本质上调用的是addslashes函数。

为什么使用Magicquotes

方便快捷

PHP的设计者在设计之初的构想就是能够快速方便的编程。

例如插入数据库时,Magicquotes会自动将数据转义,这很方便。

对初学者有利

Magicquotes可以从一定程度上,让初学者带离脚本的安全风险。

例如在没有任何保护措施的代码下,开启了Magicquotes后会少很多的风险,例如注入问题。

当然,单一使用此方法,并不能完全阻止此类安全问题。

“我没有权限去关闭”

很显然你已经可能意识到了这个问题,但是主机空间并非完全由自己控制。

为什么不使用Magicquotes

可移植性

无论此功能是否开启,它都会影响脚本的可移植性,因为它影响我们后续过滤数据的操作。

性能问题

在获取所有的外部数据之前都会被转义,这无疑会增加运行时的花销(而且并不是所有的数据都需要转义)。

造成困惑

正如上述所言,并非所有的数据都需要被转义。

有可能出现的一种情况,就是当你为了获取未被转义的数据,而“疯狂的”使用stripslashes函数。

PHP6已经不支持

PHP的设计者显然已经意识到了自己的“错误”,所以在PHP6中已经将其废弃。

如何禁用Magicquotes

按照本人观点,使用php.ini配置文件全局禁用Magicquotes是最靠谱的。

参考下面的代码

;Magicquotes

;

;MagicquotesforincomingGET/POST/Cookiedata.

magic_quotes_gpc=Off

;Magicquotesforruntime-generateddata,e.g.datafromSQL,fromexec(),etc.

magic_quotes_runtime=Off

;UseSybase-stylemagicquotes(escape'with''insteadof').

magic_quotes_sybase=Off

然而线上的主机可能无法让你修改php.ini文件,那么可以使用.htaccess文件禁用,加入下面的代码

php_flagmagic_quotes_gpcOff

上述可移植的代码而言,无论是否禁用magic_quotes,数据必须保持一致。

那么下面的代码可以帮助您

___FCKpd___2

GET);

对于Magicquotes,对于PHPer而言是个老生常谈的问题。

今天无意间看到篇文章,结合PHPManual以及其回复,在这里做个简单的汇总。

简而言之,Magicquotes开启后会自动转义输入的数据。

其中,所有的单引号(')、双引号(")、反斜线、和NULL字符都会被转义(增加个反斜线),其实这操作本质上调用的是addslashes函数。

为什么使用Magicquotes

方便快捷

PHP的设计者在设计之初的构想就是能够快速方便的编程。

例如插入数据库时,Magicquotes会自动将数据转义,这很方便。

对初学者有利

Magicquotes可以从一定程度上,让初学者带离脚本的安全风险。

例如在没有任何保护措施的代码下,开启了Magicquotes后会少很多的风险,例如注入问题。

当然,单一使用此方法,并不能完全阻止此类安全问题。

“我没有权限去关闭”

很显然你已经可能意识到了这个问题,但是主机空间并非完全由自己控制。

为什么不使用Magicquotes

可移植性

无论此功能是否开启,它都会影响脚本的可移植性,因为它影响我们后续过滤数据的操作。

性能问题

在获取所有的外部数据之前都会被转义,这无疑会增加运行时的花销(而且并不是所有的数据都需要转义)。

造成困惑

正如上述所言,并非所有的数据都需要被转义。

有可能出现的一种情况,就是当你为了获取未被转义的数据,而“疯狂的”使用stripslashes函数。

PHP6已经不支持

PHP的设计者显然已经意识到了自己的“错误”,所以在PHP6中已经将其废弃。

如何禁用Magicquotes

按照本人观点,使用php.ini配置文件全局禁用Magicquotes是最靠谱的。

参考下面的代码

;Magicquotes

;

;MagicquotesforincomingGET/POST/Cookiedata.

magic_quotes_gpc=Off

;Magicquotesforruntime-generateddata,e.g.datafromSQL,fromexec(),etc.

magic_quotes_runtime=Off

;UseSybase-stylemagicquotes(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1