Fidcer'Blog

php.ini 加固

字数统计: 853阅读时长: 3 min
2019/02/21 Share
1、register_globals

(全局变量注册开关)

该选项在设置为On的情况下,会直接把用户GET、POST等方式提交上来的参数
注册成为全局变量并初始化值为参数对应的值,使得提交参数可以直接在脚本中使用
register_globals在php版本小于等于4.2.3时设置为PHP_INI_ALL,从PHP5.3.0起被废弃
不推荐使用,在php5.4.0中移除了该选项

2、allow_url_include

(是否允许包含远程文件)

这个配置指令对PHP安全的影响不可小觑。在该配置为On的情况下,他可以直接包含远程文件
当存在include($var)且$var 可控的情况下,可以直接控制$var变量来执行php代码。
allow_url_include在php 5.2.0 后默认设置为off,配置范围是PHP_INI_ALL.与之类似的配置
有allow_url_fopen,配置是否允许打开远程文件,不过该参数对安全的影响没有allow_url_include大

3、magic_quotes_gpc

在安全方面做了很大的贡献,只要它被开启,在不存在编码或者其他

特殊绕过的情况下,可以使得很多漏洞无法被利用,他也是让渗透测试人员很头疼的一个东西 。在该选项设置为on时,会自动在GET、POST、COOKIE变量中的 单引号(‘) 、双引号(“)、反斜杠()及空字符(NULL)的前面加上反斜杠()但是在php5中magic_quotes_gpc并不会过滤$_SERVER变量,导致很多类似client-ip、referer一类的漏洞能够利用。在php5.3之后不推荐使用magic_quotes_gpc,所以你下载php 5.4之后的版本并打开配置文件会发现找不到这个匹配项目

4、magic_quotes_runtime

(魔术引导自动过滤)

magic_quotes_runtime 也是自动在单引号(‘)、双引号(“)、反斜杠(\)及空白字符(NULL)的前面加上反斜杠。它和magic_quotes_gpc 的区别是,处理的对象不一样,magic_quotes_runtime 只对从数据库或者文件中获取数据过滤,他的作用也非常大因为很多程序员只对外部输入的数据进行过滤,却从没有从数据库获取数据也是同样存在特殊字符的存在,所以攻击者的做法是将攻击代码写入数据库中,在程序中读取。同样在magic_quotes_runtime在php5.4之后也取消了,配置范围是PHP_INI_ALL
受影响的列表包括
有一个点要记住,只有部分函数受它的影响,所以在某些情况下这个配置是可以
绕过的,受影响的列表包括get_meta_tags()、file_get_contents()、file()、fgets()、fwrite()、
fread( )、fputcsv( )、stream_socket_recvfrom()、exec()、system()、passthru( )、stream_
get_contents( )、bzread( )、gzfile( )、gzgets( )、gzwrite( )、gzread( )、exif_read_data( )、
dba_insert( )、dba_replace( )、dba_fetch( )、ibase_fetch_row( )、ibase_fetch_assoc( )、
ibase_fetch_object( )、mssql_fetch_row()、mssql_fetch_object( )、mssql_fetch_array()、
mssql_fetch_assoc( )、mysqli_fetch_row( )、mysqli_fetch_array( )、mysqli_fetch_
assoc( )、mysqli_fetch_object( )、pg_fetch_row()、pg_fetch_assoc( )、pg_fetch_array( )、
pg_fetch_object( )、pg_fetch_all( )、pg_select( )、sybase_fetch_object( )、sybase_fetch_
array( )、sybase_fetch_assoc( )、SplFileObject::fgets( )、SplFileObject::fgetcsv( )、
SplFileObject::fwrite()。

5、magic_quotes_sybase

(魔术引号自动过滤)

magic_quotes_sybase 指令用于自动过滤特殊字符,当设置为on 时,它会覆盖掉
magic_quotes_gpc=on 的配置,也就是说,即使配置了gpc=on 也是没有效果的。这个指令与gpc 的共同点是处理的对象一致,即都对GET、POST、Cookie 进行处理。而它
们之前的区别在于处理方式不一样,magic_quotes_sybase 仅仅是转义了空字符和把
单引号(’)变成了双引号(’’)。与gpc 相比,这个指令使用得更少,它的配置范围是
PHP_INI_ALL,在 PHP 5.4.0 中移除了该选项。

CATALOG
  1. 1. 2、allow_url_include
  2. 2. 3、magic_quotes_gpc
  3. 3. 4、magic_quotes_runtime
  4. 4. 5、magic_quotes_sybase