溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP怎么進(jìn)行環(huán)境安全加固

發(fā)布時(shí)間:2021-09-03 22:22:35 來(lái)源:億速云 閱讀:153 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“PHP怎么進(jìn)行環(huán)境安全加固”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“PHP怎么進(jìn)行環(huán)境安全加固”吧!

1.啟用 PHP 的安全模式

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

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

safe_mode = on
2.用戶組安全

當(dāng)您啟用安全模式后,如果safe_mode_gid選項(xiàng)被關(guān)閉,PHP 腳本能夠?qū)ξ募M(jìn)行訪問(wèn),且相同用戶組的用戶也能夠?qū)υ撐募M(jìn)行訪問(wèn)。

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

safe_mode_gid = off

注意: 該選項(xiàng)參數(shù)僅適用于 Linux 操作系統(tǒng)。

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

3.安全模式下執(zhí)行程序主目錄

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

safe_mode_exec_dir = /usr/bin

一般情況下,如果不需要執(zhí)行什么程序,建議您不要指定執(zhí)行系統(tǒng)程序的目錄。您可以指定一個(gè)目錄,然后把需要執(zhí)行的程序拷貝到這個(gè)目錄即可,例如:

safe_mode_exec_dir = /temp/cmd

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

safe_mode_exec_dir = /usr/www

注意:執(zhí)行目錄的路徑以您實(shí)際操作系統(tǒng)目錄路徑為準(zhǔn)。

4.安全模式下包含文件

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

safe_mode_include_dir = /usr/www/include/

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

5.控制 PHP 腳本能訪問(wèn)的目錄

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

open_basedir = /usr/www
6.關(guān)閉危險(xiǎn)函數(shù)

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

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

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

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

注意: 以上設(shè)置中只列舉了部分比較常用的文件處理函數(shù),您也可以將上面的執(zhí)行命令函數(shù)和這些文件處理函數(shù)相結(jié)合,就能給抵制大部分的 phpshell 威脅。

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

為了防止黑客獲取服務(wù)器中 PHP 版本的信息,您可以禁止該信息在 HTTP 頭部?jī)?nèi)容中泄露:

expose_php = off

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

8.關(guān)閉注冊(cè)全局變量

在 PHP 環(huán)境中提交的變量,包括使用 POST 或者 GET 命令提交的變量,都將自動(dòng)注冊(cè)為全局變量,能夠被直接訪問(wèn)。這對(duì)您的服務(wù)器是非常不安全的,因此建議您將注冊(cè)全局變量的選項(xiàng)關(guān)閉,禁止將所提交的變量注冊(cè)為全局變量。

register_globals = off

注意: 該選項(xiàng)參數(shù)在 PHP 5.3 以后的版本中已被移除。

當(dāng)然,如果這樣設(shè)置之后,獲取對(duì)應(yīng)變量的時(shí)候就需要采取合理方式。例如,獲取 GET 命令提交的變量 var,就需要使用$_GET['var']命令來(lái)進(jìn)行獲取,在進(jìn)行 PHP 程序設(shè)計(jì)時(shí)需要注意。

9.SQL 注入防護(hù)

SQL 注入是一個(gè)非常危險(xiǎn)的問(wèn)題,小則造成網(wǎng)站后臺(tái)被入侵,重則導(dǎo)致整個(gè)服務(wù)器淪陷。

magic_quotes_gpc選項(xiàng)默認(rèn)是關(guān)閉的。如果打開(kāi)該選項(xiàng),PHP 將自動(dòng)把用戶提交對(duì) SQL 查詢的請(qǐng)求進(jìn)行轉(zhuǎn)換(例如,把 ’ 轉(zhuǎn)換為 \’ 等),這對(duì)于防止 SQL 注入攻擊有很大作用,因此建議您將該選項(xiàng)設(shè)置為:

magic_quotes_gpc = on

注意: 該選項(xiàng)參數(shù)在 PHP 5.4.0 以后的版本中已被移除。

所以最好使用PDO預(yù)處理方式處理SQL查詢。

10.錯(cuò)誤信息控制

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

display_errors = Off

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

error_reporting = E_WARNING & E_ERROR

注意: 強(qiáng)烈建議您關(guān)閉錯(cuò)誤提示信息。

11.錯(cuò)誤日志

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

log_errors = On

同時(shí),需要設(shè)置錯(cuò)誤日志存放的目錄,建議您將 PHP 錯(cuò)誤日志與 Apache 的日志存放在同一目錄下:

error_log = /usr/local/apache2/logs/php_error.log

注意: 該文件必須設(shè)置允許 Apache 用戶或用戶組具有寫(xiě)的權(quán)限。

還有最重要的是升級(jí)系統(tǒng)補(bǔ)丁,升級(jí)PHP版本。

到此,相信大家對(duì)“PHP怎么進(jìn)行環(huán)境安全加固”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI