php.ini的安全性设定参考

作者:柯冷 发布时间:2010-11-9 9:26 Tuesday 分类:折腾 17404 人围观

safe_mode = on

限制system, exec等系统执行的能力,限制某些function只能处理与自己同一个 UID的档案。

safe_mode受限制的功能请参考http://tw2.php.net/manual/en/features.safe- mode.functions.php

因为mail()的第五个参数有漏洞,可突破safe_mode的限制,执行系统命令,最好 disable, 以SMTP的方式替代寄信。

register_globals = off

allow_url_fopen = Off (很重要的设定)

allow_url_fopen 打开的时候, 如果有人传入一个参数为xxx=http://xxx/xxx 之 类的东西,

如果这个php 的程式, 没有检查这个变数, 或是register_globals 是开启的情形 下, 也许会造成这个php使用

include() 去把远端那个URL 的档案给引入执行…. 也就是执行到了别人写的程 式, 这时…

自然别人想在那里头做什么,就能够做什么了.

display_errors = off

尽量不要在正式上线的主机直接显示错误在页面上,以避免暴露系统资讯。 如需 有debug的需要则开启log_errors = On ,

并以error_log = filename指定错误讯 息要记录到哪个档案。

magic_quotes_gpc = on默认是on,但需检查一遍

open_basedir =web目录

尽量将网站的起路径限制在web的路径,并免骇客去引用web路径以外的档案。

disable_functions = (很重要的设定,对外的Web建议要把可以执行系统指令的 functions拿掉) 

system,exec,passthru,proc_close,proc_get_status,proc_nice,proc_open,pro c_terminate,shell_exec,popen,dl,set_time_limit

非必要一定要关闭的funciton,不然骇客会利用来执行档案来取得你的管理权限

能的话尽量将php档案编码过,可避免骇客在得到你的程式后,进一步分析程式的 漏洞。

尽量限制可上传档案的folder,其他的目录都不要让web server有写入的权限。

php档案的owner不能是root,配合safe_mode使用,可以避免骇客利用来以root身 份执行命令。

fsockopen能的话也关掉,但是因为有部分套装程式会用到,例如Horde Webmail ,如果关掉fsockopen imap会连不上。

标签: php.ini 安全 设定 参考

添加新评论 »