LANMP安全配置学习之PHP安全配置

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安全开发实战》

原文地址:https://www.cnblogs.com/0nc3/p/12063459.html