国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

PHP環(huán)境安全加固配置

2018-10-12 17:27:12 3175

一、啟用 PHP 的安全模式

PHP 環(huán)境提供的安全模式是一個(gè)非常重要的內嵌安全機制,PHP 安全模式能有效控制一些 PHP 環(huán)境中的函數(例如system()函數),對大部分的文件操作函數進(jìn)行權限控制,同時(shí)不允許對某些關(guān)鍵文件進(jìn)行修改(例如 /etc/passwd)。但是,默認的 php.ini 配置文件并沒(méi)有啟用安全模式。

可以通過(guò)修改 php.ini 配置文件啟用 PHP 安全模式:

1safe_mode = on

 


二、用戶(hù)組安全

當啟用安全模式后,如果safe_mode_gid選項被關(guān)閉,PHP 腳本能夠對文件進(jìn)行訪(fǎng)問(wèn),且相同用戶(hù)組的用戶(hù)也能夠對該文件進(jìn)行訪(fǎng)問(wèn)。

因此,建議將該選項設置為關(guān)閉狀態(tài):

1safe_mode_gid = off

該選項參數僅適用于 Linux 操作系統。

如果不進(jìn)行該設置,可能無(wú)法對服務(wù)器網(wǎng)站目錄下的文件進(jìn)行操作。





三、安全模式下執行程序主目錄



如果啟用了安全模式后,想要執行某些程序的時(shí)候,可以指定需要執行程序的主目錄,例如:

1safe_mode_exec_dir = /usr/bin

一般情況下,如果不需要執行什么程序,建議您不要指定執行系統程序的目錄??梢灾付ㄒ粋€(gè)目錄,然后把需要執行的程序拷貝到這個(gè)目錄即可,例如:

1safe_mode_exec_dir = /data/www/cmd

但是,更推薦不要執行任何程序。這種情況下,只需要將執行目錄指向網(wǎng)頁(yè)目錄即可:

1safe_mode_exec_dir = /data/www

 

四、安全模式下包含文件

如果需要在安全模式下包含某些公共文件,只需要修改以下選項即可:

1safe_mode_include_dir = /data/www/include/

一般情況下,PHP 腳本中包含的文件都是在程序已經(jīng)寫(xiě)好的,可以根據具體需要進(jìn)行設置。




五、控制 PHP 腳本能訪(fǎng)問(wèn)的目錄

使用open_basedir選項能夠控制 PHP 腳本只能訪(fǎng)問(wèn)指定的目錄,這樣能夠避免 PHP 腳本訪(fǎng)問(wèn)不應該訪(fǎng)問(wèn)的文件,一定程度下降低了 phpshell 的危害。一般情況下,可以設置為只能訪(fǎng)問(wèn)網(wǎng)站目錄:

1open_basedir = /data/www

 


六、關(guān)閉危險函數

如果啟用了安全模式,那么可以不需要設置函數禁止,但為了安全考慮,還是建議進(jìn)行相關(guān)設置。例如,不希望執行包括system()等在內的執行命令的 PHP 函數,以及能夠查看 PHP 信息的phpinfo()等函數,那么您可以通過(guò)以下設置禁止這些函數:

1disable_functions = system, passthru, exec, shell_exec, popen, phpinfo, escapeshellarg, escapeshellcmd, proc_close, proc_open, dl

如果想要禁止對于任何文件和目錄的操作,可以關(guān)閉以下文件相關(guān)操作。

1disable_functions = chdir, chroot, dir, getcwd, opendir, readdir, scandir, fopen, unlink, delete, copy, mkdir, rmdir, rename, file, file_get_contents, fputs, fwrite, chgrp,chmod, chown

以上設置可以抵制大部分的 phpshell 威脅。


七、關(guān)閉 PHP 版本信息在 HTTP 頭中的泄露

為了防止黑客獲取服務(wù)器中 PHP 版本的信息,禁止該信息在 HTTP 頭部?jì)热葜行孤叮?/p>

1expose_php = off

這樣設置之后,黑客在執行telnet <domain> 80嘗試連接服務(wù)器的時(shí)候,將無(wú)法看到 PHP 的版本信息。

 

八、錯誤信息控制

一般 PHP 環(huán)境在沒(méi)有連接到數據庫或者其他情況下會(huì )有錯誤提示信息,錯誤信息中可能包含 PHP 腳本當前的路徑信息或者查詢(xún)的 SQL 語(yǔ)句等信息,這類(lèi)信息如果暴露給黑客是不安全的,因此禁止該錯誤提示:

1display_errors = Off

如果確實(shí)要顯示錯誤信息,一定要設置顯示錯誤信息的級別。例如,只顯示警告以上的錯誤信息:

1error_reporting = E_WARNING & E_ERROR

強烈建議您關(guān)閉錯誤提示信息。

 

九、錯誤日志

在關(guān)閉錯誤提示信息后,對于錯誤信息進(jìn)行記錄,便于排查服務(wù)器運行異常的原因:

1log_errors = On

同時(shí),需要設置錯誤日志存放的目錄:

1error_log = /data/logs/php_error.log

該文件必須設置允許 Apache 或者 nginx 用戶(hù)或用戶(hù)組具有寫(xiě)的權限。


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->