PHP啟動(dòng)時(shí)將讀取配置文件(php.ini)。對(duì)于PHP的服務(wù)器模塊版本,僅在啟動(dòng)Web服務(wù)器時(shí)才發(fā)生一次。對(duì)于CGI和CLI版本,它會(huì)在每次調(diào)用時(shí)發(fā)生。
如何配置php.ini以提高Web服務(wù)器的安全性
1、禁用不需要的PHP函數(shù)
此選項(xiàng)可以設(shè)置禁止使用哪些PHP函數(shù)。 PHP中的某些功能仍然存在很大風(fēng)險(xiǎn)。如果允許執(zhí)行這些功能,那么當(dāng)PHP程序容易受到攻擊時(shí),損失會(huì)非常嚴(yán)重!下面我們給出建議的禁用功能設(shè)置:
disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status
注意:如果您的服務(wù)器包含一些用于CentOS系統(tǒng)狀態(tài)檢測(cè)的PHP程序,請(qǐng)不要禁用shell_exec,proc_open,proc_get_status和其他功能。
2、PHP腳本的執(zhí)行時(shí)間
max_execution_time = 30
此選項(xiàng)設(shè)置PHP程序的最大執(zhí)行時(shí)間。如果請(qǐng)求了PHP腳本,而PHP腳本未能在max_execution_time時(shí)間內(nèi)完成,則PHP將不會(huì)繼續(xù)執(zhí)行,而是直接向客戶(hù)端返回超時(shí)錯(cuò)誤。此選項(xiàng)不需要特別保留默認(rèn)設(shè)置30秒。如果您的PHP腳本確實(shí)需要很長(zhǎng)的執(zhí)行時(shí)間,則可以適當(dāng)?shù)卦黾哟藭r(shí)間設(shè)置。
3、PHP腳本的內(nèi)存使用情況
memory_limit = 8M
此選項(xiàng)指定PHP腳本處理可以占用的最大內(nèi)存。默認(rèn)值為8MB。如果服務(wù)器內(nèi)存大于1GB,則可以將此選項(xiàng)設(shè)置為12MB,以提高PHP腳本處理效率。
4、PHP全局函數(shù)聲明
register_globals = Off
Internet上許多有關(guān)PHP設(shè)置的文章都建議將此選項(xiàng)設(shè)置為On。實(shí)際上,這是一種非常危險(xiǎn)的設(shè)置方法,可能會(huì)導(dǎo)致嚴(yán)重的安全問(wèn)題。如果沒(méi)有特殊需要,強(qiáng)烈建議保留默認(rèn)設(shè)置!
5、PHP上傳文件大小限制
upload_max_filesize = 2M
此選項(xiàng)設(shè)置PHP允許的最大上傳文件大小。默認(rèn)值為2MB。可以根據(jù)實(shí)際應(yīng)用要求適當(dāng)增加此設(shè)置。