站长买卖(http://jy.chinaz.com)帮站长赔本虚拟主机评测+IDC导航=IDC123.COM
PHP自身再老版本有一些题目,比方在 php4.3.10和php5.0.3以前有一些比拟严峻的bug,所以引荐运用新版。另外,目前闹的大张旗鼓的SQL Injection也是在PHP上有很多应用方式,所以要保证平安,PHP代码编写是一方面,PHP的配置更是十分关键。
我们php手手工装置的,php的默许配置文件在 /usr/local/apache2/conf/php.ini,我们最次要就是要配置php.ini中的形式,让我们施行php能够更平安。整个PHP中的平安设置次要是为了防止phpshell和SQL Injection的攻击,一下我们渐渐讨论。我们先运用任何编辑工具翻开/etc/local/apache2/conf/php.ini,假如你是采用其他方式装置,配置文件能够不在该目录。
(1) 翻开php的平安形式
php的平安形式是个十分主要的内嵌的平安机制,能够掌握一些php中的函数,比方system(),
同时把很多文件操纵函数停止了权限掌握,也不答应对某些关键文件的文件,比方/etc/passwd,
但是默许的php.ini是没有翻开平安形式的,我们把它翻开:
safe_mode = on
(2) 用户组平安
当safe_mode翻开时,safe_mode_gid被封闭,那么php脚天性够对文件停止拜访,而且相反
组的用户也能够对文件停止拜访。
倡议设置为:
safe_mode_gid = off
假如不停止设置,能够我们无法对我们效劳器网站目录下的文件停止操纵了,比方我们需求
对文件停止操纵的时分。
(3) 平安形式下施行顺序主目录
假如平安形式翻开了,但是却是要施行某些顺序的时分,能够指定要施行顺序的主目录:
safe_mode_exec_dir = D:/usr/bin
普通状况下是不需求施行什么顺序的,所以引荐不要施行零碎顺序目录,能够指向一个目录,
然后把需求施行的顺序拷贝过来,比方:
safe_mode_exec_dir = D:/tmp/cmd
但是,我更引荐不要施行任何顺序,那么就能够指向我们网页目录:
safe_mode_exec_dir = D:/usr/www
(4) 平安形式下包括文件
假如要在平安形式下包括某些公共文件,那么就修正一下选项:
safe_mode_include_dir = D:/usr/www/include/
实在普通php脚本中包括文件都是在顺序本人曾经写好了,这个能够依据详细需求设置。
(5) 掌握php脚天性拜访的目录
运用open_basedir选项能够掌握PHP脚本只能拜访指定的目录,这样能够防止PHP脚本拜访
不该当拜访的文件,必定水平下限制了phpshell的损害,我们普通能够设置为只能拜访网站目录:
open_basedir = D:/usr/www
(6) 封闭风险函数
假如翻开了平安形式,那么函数制止是能够不需求的,但是我们为了平安还是思索出来。比方,
我们觉得不期望施行包括system()等在那的能够施行命令的php函数,或许能够检查php消息的
phpinfo()等函数,那么我们就能够制止它们:
disable_functions = system,passthru,exec,shell_exec,popen,phpinfo
假如你要制止任何文件和目录的操纵,那么能够封闭很多文件操纵
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
以上只是列了局部不叫常用的文件处置函数,你也能够把下面施行命令函数和这个函数分离,
就能够抵抗大局部的phpshell了。
(7) 封闭PHP版本消息在http头中的走漏
我们为了防止黑客获取效劳器中php版本的消息,能够封闭该消息斜路在http头中:
expose_php = Off
比方黑客在 telnet www.chinaz.com 80 的时分,那么将无法看到PHP的消息。
(8) 封闭注册全局变量
在PHP中提交的变量,包括运用POST或许GET提交的变量,都将主动注册为全局变量,能够间接拜访,
这是对效劳器十分不平安的,所以我们不能让它注册为全局变量,就把注册全局变量选项封闭:
register_globals = Off
当然,假如这样设置了,那么获取对应变量的时分就要采用公道方式,比方获取GET提交的变量var,
那么就要用$_GET['var']来停止获取,这个php顺序员要留意。
(9) 翻开magic_quotes_gpc来防止SQL注入
SQL注入是十分风险的题目,小则网站后台被入侵,重则整个效劳器陷落,
所以必定要当心。php.ini中有一个设置:
magic_quotes_gpc = Off
这个默许是封闭的,假如它翻开后将主动把用户提交对sql的查询停止转换,
比方把 ' 转为 \'等,这对防止sql注射有严峻作用。所以我们引荐设置为:
magic_quotes_gpc = On
(10) 过失消息掌握
普通php在没有衔接到数据库或许其他状况下会有提示过失,普经过失消息中会包括php脚本当
前的途径消息或许查询的SQL语句等消息,这类消息提供应黑客后,是不平安的,所以普通效劳器倡议制止过失提示:
display_errors = Off
假如你却是是要显现过失消息,必定要设置显现过失的级别,比方只显现正告以上的消息:
error_reporting = E_WARNING & E_ERROR
当然,我还是倡议封闭过失提示。
(11) 过失日志
倡议在封闭display_errors后能够把过失消息记载上去,便于查找效劳器运转的缘由:
log_errors = On
同时也要设置过失日志寄存的目录,倡议根apache的日志具有一同:
error_log = D:/usr/local/apache2/logs/php_error.log
留意:给文件必需答应apache用户的和组具有写的权限。
MYSQL的降权运转
新树立一个用户比方mysqlstart
net user mysqlstart ****microsoft /add
net localgroup users mysqlstart /del
不属于任何组
假如MYSQL装在d:\mysql ,那么,给 mysqlstart 完整掌握 的权限
然后在零碎效劳中设置,MYSQL的效劳属性,在登录属性当中,挑选此用户 mysqlstart 然后输出密码,肯定。
重新发动 MYSQL效劳,然后MYSQL就运转在低权限下了。
假如是在windos平台下搭建的apache我们还需求留意一点,apache默许运转是system权限,
这很恐惧,这让人觉得很不爽.那我们就给apache降降权限吧。
net user apache ****microsoft /add
net localgroup users apache /del
ok.我们树立了一个不属于任何组的用户apche。
我们翻开计算机治理器,选效劳,点apache效劳的属性,我们挑选log on,挑选this account,我们填入下面所树立的账户和密码,
重启apache效劳,ok,apache运转在低权限下了。
实践上我们还能够经过设置各个文件夹的权限,来让apache用户只能施行我们想让它无能的事情,给每一个目录树立一个独自能读写的用户。
这也是以后很多虚拟主机提供商的盛行配置办法哦,不过这种办法用于防止这里就显的有点大材小用了。
哺乳期可以吃橙子吗 脂肪瘤短期内增大 安利产品介绍 安装福克斯dvd导航 600615
相关新闻:
|
- 发表评论
-
- 最新评论 进入详细评论页>>









