`

关闭php.ini 魔法引用 _转转转

    博客分类:
  • php
阅读更多

PHP魔术引号是在编程过程中必须注意的,否则会带来灾难性的麻烦,汗,今天就有客户找我了,我排查错误半天,发现是PHP魔术引号在作怪!真是很 郁闷的一件事,我就纳闷儿了,PHP默认魔术引号是关闭的,那个破网管闲的没事,给打开了!后来,偶找到他,他还给偶谈一些什么SQL注入的大道理,唉, 真是无语!!

PHP的魔术引号给程序编写带来了一丁点方便,但却严重影响的程序的可移植性,在开启magic_quotes_gpc的环境下写的程序到没开启的环境下就有可能出现错误。所以通常情况下,我们会关闭magic_quotes_gpc以避免它带来的问题。

手册里介绍了三种方法,在些整理一下:

1 修改PHP配置文件php.ini

这种方法只适于自己有权管理服务器的情况下,如果用的虚拟空间,那就只能采用后两条方法。

在PHP配置文件php.ini中将magic_quotes_gpc、magic_quotes_runtime、magic_quotes_sybase全部设为off。如下所示:

; 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

2 利用.htaccess文件

该方法只在服务器支持htaccess的情况下,现在的服务器一般都会支持的

在程序目录下.htaccess文件中增加下面一句:

php_flag magic_quotes_gpc Off

3 在代码中屏蔽

该方法是移植性最强的,不用考虑服务器的配置,只要支持PHP就可以使用。

在所有PHP文件开始处增加下面代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
if (get_magic_quotes_gpc()) { 
function stripslashes_deep($value) 
{ 
$value = is_array($value) ? 
array_map('stripslashes_deep', $value) : 
stripslashes($value); 
 
return $value; 
} 
 
$_POST = array_map('stripslashes_deep', $_POST); 
$_GET = array_map('stripslashes_deep', $_GET); 
$_COOKIE = array_map('stripslashes_deep', $_COOKIE); 
$_REQUEST = array_map('stripslashes_deep', $_REQUEST); 
} 
?>

自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

分享到:
评论

相关推荐

    agent.installer.linux.gtk.x86_64_1.8.3000.20150606_0047.zip

    5. user-silent-install.ini、silent-install.ini:这些是静默安装配置文件,它们允许无用户交互的自动安装,常用于服务器维护或批量部署。 6. userinstc.ini、groupinstc.ini:这些可能类似于前面提到的安装配置...

    GPIO.rar_Ext_RAM.ini 2440_GT2440_RAM.ini_ext_ram_keil s3c2440

    标题中的"GPIO.rar_Ext_RAM.ini 2440_GT2440_RAM.ini_ext_ram_keil s3c2440" 提到了几个关键元素:GPIO、EXT_RAM.ini、2440、GT2440、RAM.ini、ext_ram、keil以及s3c2440。这些元素涉及了嵌入式系统开发中的多个知识...

    PECMD.INI_Encryptor_v1.2.zip

    PECMD.INI加密/解密软件

    BepInEx_x86_5.1.0.0_doorstop_config.ini_BepInEx框架下载_BepInEx5_Bep

    【标题】"BepInEx_x86_5.1.0.0_doorstop_config.ini_BepInEx框架下载_BepInEx5_Bep" 涉及的是BepInEx框架的一个特定版本,用于游戏模组开发。BepInEx是一个开源的游戏插件和修改框架,它为游戏开发者和玩家提供了...

    read_ini.rar_read_ini_readme.ini

    标题中的"read_ini.rar_read_ini_readme.ini"表明这是一个关于读取和写入INI配置文件的资源包,其中包含了README文件。INI文件是Windows操作系统中常见的文本配置文件格式,用于存储程序的设置和参数。VC++是...

    loader.ini

    凯立德地图修改Loader.ini和NAVICONFIG.txt两个文件配置的方法 2010-08-07 10:18:00| 分类: GPS导航地图 | 标签:loader naviconfig navione 文件 凯立德 |字号大 中 小 订阅 请检查下你的程序包里有无LOADER,...

    mysql_my.ini_优化

    MySQL的配置文件`my.ini`是管理MySQL服务器性能的关键组件,它定义了各种服务器参数,以确保数据库服务高效运行。本文将详细介绍`my.ini`的一些关键优化参数,并提供两个优化方案示例。 首先,理解MySQL配置文件的...

    rdpwrap-master_RDp_delphi_RDPWrap_rdpwrap.ini_zip_

    在本文中,我们将深入探讨RDPWrapper、Delphi编程语言以及`rdpwrap.ini`配置文件,这些都是与"rdpwrap-master_RDp_delphi_RDPWrap_rdpwrap.ini_zip_"相关的主题。 首先,RDPWrap是一个开源工具,它允许你绕过...

    rdpwrap.ini(版本到[10.0.18362.657])

    `rdpwrap.ini`是RDP Wrap项目的核心配置文件,对于理解和操作RDP Wrap至关重要。 `rdpwrap.ini`文件的作用在于存储关于不同Windows版本的远程桌面服务端口的信息,这些信息用于绕过微软的多会话限制。这个配置文件...

    Ext_RAM.zip_Ext.RAM.i_Ext_RAM.ini_ext_ram

    MDK初始化文件,用来配置MDK开发环境,进行调试用。

    TB+Beast_deZenderphp.ini_dezender_

    标题 "TB+Beast_deZenderphp.ini_dezender_" 暗示这是一个与 PHP 相关的项目,其中可能包含解码或处理 Zender 类的工具。描述 "decoder fo zender class php" 明确指出这是一个用于解码 Zender 类的 PHP 解码器。...

    CIniFile(VC6).zip_.ini_CIniFile_INI封装类_VC6 ini_vc6.0 文件 读写

    在Windows编程中,INI文件是一种常见的配置文件格式,用于存储应用程序的设置和用户偏好。`CIniFile` 是Microsoft Visual C++ 6.0 (VC6)中一个方便的类,用于简化对INI文件的读写操作。这个压缩包包含了`CIniFile` ...

    ST-TOOL 9000 v3.76.16(群联PS2251-07主控)量产工具.zip

     ISP_INFO b2267.bin b2267_hynix.bin b2307.BIN b2307_1.BIN flashInfo.csv HubMapping.ini inpout32.dll Intel_64GB.ini MPLibrary.dll MPParamEdit_F1_90.exe ST_MC_Retry_1z.ini ST_MC_Retry_All....

    PECMD.INI配置文件CMPS加密器

    "PECMD.INI配置文件CMPS加密器"是一个专门针对PECMD配置文件进行加密和解密的工具,旨在增强这些文件的安全性,防止未经授权的访问或篡改。下面我们将深入探讨CMPS加密器的工作原理、使用方法以及它在实际应用中的...

    不用API的ini文件读写.rar_.ini文件读写_ini_ini 文件_ini文件_ini读写

    Ini文件是一种简单的文本配置文件格式,常用于存储应用程序的配置信息,如用户设置、软件的默认参数等。这种文件格式由一系列的节(Section)组成,每个节下面包含多个键值对(Key-Value pairs)。在Windows系统中,...

    adb_usb文件包

    `adb_usb.ini`文件在其中扮演了重要的角色。 `adb_usb.ini`文件是Android SDK的一部分,主要用于定义可以通过USB连接进行调试的非标准USB设备ID。默认情况下,这个文件只包含一行`# USB Vendor ID list - add new ...

    rdpwrap.ini 10.0.22598.1及以下版本

    10.0.17738.1000.ini 10.0.17746.1000.ini 10.0.17763.1369.ini 10.0.17763.1697.ini 10.0.17763.1971.ini 10.0.17763.1971.ini 10.0.17763.2213.ini 10.0.17763.2213.ini 10.0.17763.2268.ini 10.0.17763.2268.ini ...

    cfg.rar_cfg_ini配置读取_linux ini_linux ini文件_linux 读取ini

    标题中的"cfg.rar_cfg_ini配置读取_linux ini_linux ini文件_linux 读取ini"表明了本文将探讨如何在Linux环境中处理ini配置文件,这通常涉及到程序的配置管理和数据存储。Ini文件是一种简单易读的文本格式,常用于...

    php.ini-helper-doc.rar_doc

    《php.ini配置详解——助你优化PHP环境》 在PHP编程世界中,`php.ini`配置文件扮演着至关重要的角色。它控制着PHP解释器的行为,定义了各种环境变量、函数选项以及错误处理方式等。这份`php.ini中文解释.doc`文档...

    php5 调试扩展dll -- php_xdebug-2.0.3-5.2.5.dll, php_xdebug-2.0.5-5.2-nts.dll

    ini配置如下: [Zend] ;zend_extension_ts = "" [Xdebug] zend_extension_ts="D:\php\ext\php_xdebug-2.0.3-5.2.5.dll" xdebug.auto_trace=Off xdebug.collect_params=On xdebug.collect_return=On xdebug.remote_...

Global site tag (gtag.js) - Google Analytics