參考答案
1、打開php的安全模式
php的安全模式是個非常重要的php內嵌的安全機制,能夠控制一些php中的函數執行,比如system(),同時把被很多文件操作的函數進行了權限控制。 默認關閉,338行 safe_mode = Off 改爲 safe_mode = On
2、用戶組安全
; By default, Safe Mode does a UID compare check when ; opening files. If you want to relax this to a GID compare, ; then turn on safe_mode_gid. ; http://php.net/safe-mode-gid safe_mode_gid = Off # php5.3.27默認關閉
3、關閉危險函數
當打開安全模式,函數禁止可以不做,但爲了雙重保險還是做。比如不執行system()能執行系統命令的函數,或能查看php信息的phpinfo()等函數。方法如下 disable_functions = system,passthru,exec,shell_exec,popen,phpinfo
4、關閉php版本號
php版本號會在http的head裏顯示 expose_php = On 改爲 expose_php = Off
5、關閉註冊全局變量
register_globals = Off # 默認關閉,不要打開
6、打開magic_quotes_gpc防止SQL注入
magic_quotes_gpc = Off 改爲 magic_quotes_gpc = On
7、錯誤信息控制
一般php在沒有連接到數據庫或者其他情況下會有錯誤提示,一般錯誤信息中會包含php腳本當前的路徑信息或者查詢的SQL語句等信息,這類信息在生產環境是不允許的,應禁止。想要錯誤信息,應該導入日誌。 display_errors = Off (默認值,不是改爲off) 顯示錯誤級別 error_reporting = E_WARNING & E_ERROR
8、錯誤日誌
log_errors = On log_errors_max_len = 1024 # Set maximum length of log_errors. error_log = /app/logs/php_errors.log # 注意寫權限
9、資源參數限制優化
# 設置每個腳本運行的最長時間,當無法上傳較大的文件或者後臺備份數據經常超時,需調整下面參數,單位秒。 max_execution_time = 30 # 每個腳本使用的最大內存 memory_limit = 128M # 每個腳本等待輸入數據最長時間 max_input_time = 60 # 上傳文件的最大許可 upload_max_filesize = 2M
10、安全參數優化
# 禁止打開遠程地址 allow_url_fopen = On 改爲 allow_url_fopen = Off # 防止Nginx文件類型錯誤解析漏洞 cgi.fix_pathinfo=0
備註
今天是每日一題陪伴大家的第108天,期待你的進步。
對於題目和答案的任何疑問,請在博客評論區留言。
往期題目索引