17 09 2010

php.ini的安全性設定參考

bigCat Posted in PHP - Comment.isBlank

出處:http://forum.icst.org.tw/phpbb/viewtopic.php?f=16&t=15523&p=50198&hilit=rkhunter#p50198\r\n\r\nphp.ini的安全性設定參考\r\n\r\nsafe_mode = on\r\n限制system, exec等系統執行的能力,限制某些function只能處理與自己同一個UID的檔案。\r\nsafe_mode受限制的功能請參考http://tw2.php.net/manual/en/features.safe-mode.functions.php\r\n\r\n因為mail()的第五個參數有漏洞,可突破safe_mode的限制,執行系統命令,最好disable,以SMTP的方式替代寄信。\r\n\r\nregister_globals = off\r\n\r\nallow_url_fopen = Off (很重要的設定)\r\nallow_url_fopen 打開的時候, 如果有人傳入一個參數為 xxx=http://xxx/xxx 之類的東西,\r\n如果這個 php 的程式, 沒有檢查這個變數, 或是 register_globals 是開啟的情形下, 也許會造成這個 php 使用\r\ninclude() 去把遠端那個 URL 的檔案給引入執行.... 也就是執行到了別人寫的程式, 這時... 自然別人想在那裡頭做什麼,\r\n就能夠做什麼了.\r\n\r\ndisplay_errors = off\r\n盡量不要在正式上線的主機直接顯示錯誤在頁面上,以避免暴露系統資訊。如需有debug的需要則開啟log_errors = On ,並以error_log = filename指定錯誤訊息要記錄到哪個檔案。\r\n\r\n\r\nmagic_quotes_gpc = on\r\n默認是on,但需檢查一遍\r\n\r\nopen_basedir =web目錄\r\n盡量將網站的起路徑限制在web的路徑,並免駭客去引用web路徑以外的檔案。\r\n\r\ndisable_functions = (很重要的設定,對外的Web建議要把可以執行系統指令的functions拿掉) system,exec,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,dl,set_time_limit\r\n非必要一定要關閉的funciton,不然駭客會利用來執行檔案來取得你的管理權限。\r\n\r\n能的話盡量將php檔案編碼過,可避免駭客在得到你的程式後,進一步分析程式的漏洞。\r\n\r\n盡量限制可上傳檔案的folder,其他的目錄都不要讓web server有寫入的權限。\r\n\r\nphp檔案的owner不能是root,配合safe_mode使用,可以避免駭客利用來以root身份執行命令。\r\nfsockopen能的話也關掉,但是因為有部分套裝程式會用到,例如Horde Webmail,如果關掉fsockopen imap會連不上。\r\n\r\n

Host: (miao) | Word: Press | Code: HTML5