Heim  >  Artikel  >  php教程  >  windows下apache/php安全配置

windows下apache/php安全配置

WBOY
WBOYOriginal
2016-06-06 19:53:481154Durchsuche

继上篇《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访问和错误日志,检查系统安全等等
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn