首頁 >php教程 >php手册 >windows下apache/php安全配置

windows下apache/php安全配置

WBOY
WBOY原創
2016-06-06 19:53:481166瀏覽

继上篇《PHP网站被挂马防御战》 Php本身也有一些安全机制,如下: 1、禁用shell函数和com组件;(上篇已提到) 2、限制php作用域;(上篇已提到) 3、启动php安全模式; 4、其他安全设置; 5、降低php的系统权限; 一、php安全模式 php安全模式是个php内嵌的

继上篇《PHP网站被挂马防御战》

 

Php本身也有一些安全机制,如下:

1、 禁用shell函数和com组件;(上篇已提到)

2、 限制php作用域;(上篇已提到)

3、 启动php安全模式;

4、 其他安全设置;

5、 降低php的系统权限;

 

一、php安全模式

php安全模式是个php内嵌的安全机制,能够控制php中的shell函数,比如system(),同时把大部分文件操作函数进行了权限控制。

Php安全模式默认是关闭的,可以修改php配置启动这个功能:

safe_mode = on
//只打开 safe_mode作用不大,还需要同时指定safe_mode_exec_dir和safe_mode_include_dir目录。

safe_mode_exec_dir = D:/htdocs/www/lib
//设定php安全模式下的可执行程序目录,建议不要直接指向网站根目录

safe_mode_include_dir = D:/htdocs/www/include
//设定php安全模式下的包含文件目录,建议不要直接指向网站根目录

safe_mode_protected_env_vars = LD_LIBRARY_PATH
//设置安全模式下限制用户不能更改的环境变量

针对以上几点,就要求php程序在设计的时候有一定的规划。哪个目录是执行程序的目录,哪个目录是上传文件的存放目录,等等要规划好。

正常情况下,文件上传存放的目录不能有执行的权限;可执行目录就不要放用户上传的文件,而且要定期检查可行性文件目录是否有改动。

 

二、会话安全设置

session.use_only_cookies = On
//是否仅仅使用cookie在客户端保存会话ID,打开这个选项可以避免使用URL传递会话带来的安全问题。禁用Cookie的客户端将使会话无法工作,但是所有浏览器默认都不会禁用Cookie。

session.use_trans_sid = Off
//是否使用明码在URL中显示SID(会话ID)。默认是禁止的,因为它会给你的用户带来安全危险:基于URL的会话管理总是比基于Cookie的会话管理有更多的风险,所以应当禁用。

session.hash_function = 1
//生成SID的散列算法。设为0采用MD5(128 bits),设为1采用SHA-1(160 bits)。SHA-1的安全性比MD5高一些


三、php错误信息
display_errors = Off
//是否将错误信息作为输出的一部分显示。强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。在最终发布的web站点打开这个特性可能暴露一些安全信息,

define_syslog_variables = Off
//是否定义各种系统日志变量,建议关闭

error_log =
//将错误日志记录到哪个文件中。该文件必须对Web服务器用户可写。建议留空,错误则被记录到Web服务器的错误日志中。

log_errors = On
//是否在日志文件里记录错误

ignore_repeated_errors = On
//记录错误日志时是否忽略重复的错误信息。错误信息必须出现在同一文件的同一行才被被视为重复。建议开启,可以减少日志记录

四、其他安全设置
register_globals = Off
//关闭注册全局变量;全局变量这个功能本身在程序是很容易实现的,没必要php帮我们转换。而且php自动将post,get等数据都注册成全局变量,这是非常危险的。

magic_quotes_gpc = On
//开启引号转义功能;开启这个功能可以在一定程度防止SQL注入。Php会自动将post,get过来的数据做转义。

expose_php = Off
//关闭php版本信息;关闭该功能可以防止别人获取服务器的php版本信息,然后利用该版本的漏洞进行攻击。

allow_url_include = Off
//禁止include/require远程文件,降低木马攻击风险

enable_dl = On
//禁止用dl()方式加载php扩展

五、降低php的系统权限(针对windows / apache / php)

在windows平台下搭建的apache默认是system权限,所以考虑安全性,就有需要给apache降低权限。

net user user_apache pass_123 /add 
net localgroup users user_apache /del 

以上建立了一个不属于任何组的用户user_apache,密码是pass_123 

我们打开系统服务,点apache服务的属性,我们选择登录,选择此账户,我们填入上面所建立的账户和密码,重启apache服务。

这样,apache运行在低权限下了。

 

总结,通过修改php配置可以提高php网站安全性,但也没有绝对的安全,这就需要我们平时去维护,定期检查程序,做好备份,查看apache访问和错误日志,检查系统安全等等
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn