0x00 前言
就看PHPWeb的第四章感觉自己对安全配置这块不怎么了解,所以想学习一下
就先从熟悉点的PHP安全配置开始吧
0x01 笔记
1.变量相关配置
1.1 开启魔术引号
magic_quotes_gpc = On
magic_quotes_runtime = Off
1.2 关闭全局变量
register_globals = Off
当设置为On时,PHP会将$_POST
、$_GET
、$_COOKIE
、$_ENV
、$_SESSION
中的$key=>$value
直接注册为变量
2. 安全模式的配置
2.1 开启安全模式
safe_mode = On;
安全模式是一个非常重要的安全机制,能够控制一些PHP中的函数,也不允许对某些关键文件的操作。
PHP版本>5.3,废弃该特性
2.2 安全模式下执行程序主目录
safe_mode_exec_dir = /var/www/html;
system()和其他程序执行函数将拒绝不在此目录的程序。
必须用/作为目录分隔符
2.3 禁用类/函数
disable_classes = ;
disable_functions = ;
后接多个类/函数时用,
分隔
3. 上传文件及目录权限
3.1 防止文件远程加载漏洞
如果服务器不需加载远程文件建议关闭此功能。
allow_url_fopen = Off;
alow_url_include = Off;
3.2 限制活动目录
open_basedir=/home/web/html/
4. 回显信息的配置
4.1 屏蔽PHP版本信息
php.ini文件中
expose_php = Off
4.2 关闭错误回显
display_errors = Off
4.3 设置错误报告级别
error_reporting = 0;
0不回显错误信息;
E_ALL/E_STRICT回显所有级别错误信息。
4.4 错误日志
php.ini文件中
log_errors = Off
表示将错误日志是否输出到文件。
同时,设置错误日志存放的位置,建议和Apache日志存放在一起。
error_log = D:/usr/apache2/logs/php_error.log
该文件必须允许Apache用户和组具有写的权限。
log_errors_max_length = 1024
设置错误日志关联信息的最大长度,0表示无限长度。
5.禁用危险函数
可使用disable_functions
选项禁掉一些危险函数(如下图)。
0x02 参考
1.i春秋的一个视频,忘了哪位师傅讲的了
2.《PHP Web安全开发实战》