字體:  

加強 php.ini 的安全性設定

cuteftp 發表於: 2014-6-13 09:45 來源: ADJ網路控股集團


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指定錯誤訊息要記錄到哪個檔案。

disable_functions = (很重要的設定,對外的Web建議要把可以執行系統指令的functions拿掉)
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
非必要一定要關閉的funciton,不然駭客會利用來執行檔案來取得你的管理權限。

能的話盡量將php檔案編碼過,可避免駭客在得到你的程式後,進一步分析程式的漏洞。

盡量限制可上傳檔案的folder,其他的目錄都不要讓web server有寫入的權限。

php檔案的owner不能是root,配合safe_mode使用,可以避免駭客利用來以root身份執行命令。
fsockopen能的話也關掉,但是因為有部分套裝程式會用到,例如Horde Webmail,如果關掉fsockopen imap會連不上。