php安全加固

PHP安全加固



1. 控制访问目录

使用open_basedir选项能够控制PHP脚本只能访问指定的目录。

open_basedir = /usr/www

2. 关闭危险函数

disable_functions = system, passthru, exec, shell_exec, popen, phpinfo, escapeshellarg, escapeshellcmd, proc_close, proc_open, dl

# 如果禁止任何文件和目录的操作,那么可以关闭很多文件操作
disable_functions = chdir, chroot, dir, getcwd, opendir, readdir, scandir, fopen, unlink, delete, copy, mkdir, rmdir, rename, file, file_get_contents, fputs, fwrite, chgrp,chmod, chown unlink, delete, copy, mkdir, rmdir, rename, file, file_get_contents, fputs, fwrite, chgrp,chmod, chown

3. 关闭 PHP 版本信息在 HTTP 头中的泄露

php5.6默认启动,禁用设置为off

expose_php = off

黑客执行telnet <domain> 80尝试连接服务器时,将无法看到 PHP 的版本信息。


4. 控制错误信息

关闭错误提示

display_errors = Off

只显示警告以上的错误信息

error_reporting = E_WARNING & E_ERROR

5. 记录错误日志

开启功能

log_errors = On

设置错误日志存放目录

error_log = /usr/local/apache/logs/php_error.log

6. 开启http only

session.cookie_httponly = 1

7. 禁止调用dll

enable_dl = off

8. 禁止远程调用文件

allow_url_include = off 

9. 部分版本可用

开启安全模式

在配置文件php.ini中,safe_mode(PHP安全模式在5.4时已不再支持)

safe_mode = on(默认是off状态)

php5.6中有sql.safe_mode,开启后MySQL和Ingres扩展将忽略提供的主机、用户和密码信息,并将仅使用默认值。启用后在php.ini中配置数据库主机、用户名和密码,php脚本中无需再设置。(sql.safe_mode在php7.2已被移除)

关闭全局变量

将注册全局变量的选项关闭,禁止将所提交的变量注册为全局变量。

register_globals = off

该选项参数在 PHP 5.3 以后版本已被移除

SQL注入防护

magic_quotes_gpc = on

该选项参数在 PHP 5.4.0 以后版本已被移除


posted @ 2022-11-01 23:20  0dot7  阅读(124)  评论(0编辑  收藏  举报