PHP安全配置规范

PHP安全配置规范

一、 说明

本文件中所有的配置选项无特殊说明,均为系统的php.ini文件。由于可能各个系统使用的PHP版本不一样,PHP的默认选项也可能不一样,为方便操作,要求所有检查的配置项必须在配置文件中明确写出。

二、 检查的配置项

1. 启用PHP安全模式

safe_mode = On

或者修改httpd.conf,定义目录:

<Directory /var/www>

php_admin_value safe_mode 1

</Directory>

启用safe_mode,会对许多PHP函数进行限制,特别是和系统相关的文件打开、命令执行等函数。所有操作文件的函数将只能操作与脚本UID相同的文件。能在很大程度上提高PHP应用的安全性。


2. 用户组安全

safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同组的用户也能够对文件进行访问。

建议设置为:

safe_mode_gid = off

如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要对文件进行操作的时候。

参考:http://php.net/manual/zh/ini.sect.safe-mode.php


3. 关闭注册全局变量

register_globals = Off

PHP默认register_globals = On,对于GET, POST, Cookie, Environment, Session的变量可以直接注册成全局变量。它们的注册顺序是variables_order = "EGPCS"(可以通过php.ini修改),同名变量variables_order右边的覆盖左边,所以变量的滥用极易造成程序的混乱。

攻击者能通过提交数据来给PHP应用中的未初始化变量赋值,改变代码逻辑,产生安全问题。


4. 关闭远程文件操作(allow_url_fopen = On allow_url_include = Off 业务需求)

allow_url_fopen = Off

allow_url_include=Off

PHP的远程文件包含和远程文件操作功能在通常的应用中都不会用到,如果PHP代码在文件操作或是文件包含的时候对其变量不作严格的检查,攻击者就可以通过改变这些变量的值来包含远程机器上的恶意文件,并在WEB服务器上运行任意代码。


5. 打开引号转义

magic_quotes_gpc = On

如果PHP代码中没有对用户输入数据中的特殊字符作过滤就直接用于构造SQL查询串,将产生SQL注入漏洞。

该选项使得从GET, POST, COOKIE来的变量自动加了addslashes()操作,对输入字符串中的单引号,双引号,括号会进行转义操作,虽不能通过打开这个选项来完全解决 SQL注入问题,

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值