1. 程式人生 > >windows下apache/php安全配置

windows下apache/php安全配置

Php本身也有一些安全機制,如下:

1、 禁用shell函式和com元件;(上篇已提到)

2、 限制php作用域;(上篇已提到)

3、 啟動php安全模式;

4、 其他安全設定;

5、 降低php的系統許可權;

一、php安全模式

php安全模式是個php內嵌的安全機制,能夠控制php中的shell函式,比如system(),同時把大部分檔案操作函式進行了許可權控制。

Php安全模式預設是關閉的,可以修改php配置啟動這個功能:

safe_mode = on
//只打開 safe_mode作用不大,還需要同時指定safe_mode_exec_dir和safe_mode_include_dir目錄。

safe_mode_exec_dir = D:/htdocs/www/lib
//設定php安全模式下的可執行程式目錄,建議不要直接指向網站根目錄

safe_mode_include_dir = D:/htdocs/www/include
//設定php安全模式下的包含檔案目錄,建議不要直接指向網站根目錄

safe_mode_protected_env_vars = LD_LIBRARY_PATH
//設定安全模式下限制使用者不能更改的環境變數

針對以上幾點,就要求php程式在設計的時候有一定的規劃。哪個目錄是執行程式的目錄,哪個目錄是上傳檔案的存放目錄,等等要規劃好。

正常情況下,檔案上傳存放的目錄不能有執行的許可權;可執行目錄就不要放使用者上傳的檔案,而且要定期檢查可行性檔案目錄是否有改動。

二、會話安全設定

session.use_only_cookies = On
//是否僅僅使用cookie在客戶端儲存會話ID,開啟這個選項可以避免使用URL傳遞會話帶來的安全問題。禁用Cookie的客戶端將使會話無法工作,但是所有瀏覽器預設都不會禁用Cookie。

session.use_trans_sid = Off
//是否使用明碼在URL中顯示SID(會話ID)。預設是禁止的,因為它會給你的使用者帶來安全危險:基於URL的會話管理總是比基於Cookie的會話管理有更多的風險,所以應當禁用。

session.hash_function = 1
//生成SID的雜湊演算法。設為0採用MD5(128 bits),設為1採用SHA-1(160 bits)。SHA-1的安全性比MD5高一些
三、php錯誤資訊
display_errors = Off
//是否將錯誤資訊作為輸出的一部分顯示。強烈建議你關掉這個特性,並使用錯誤日誌代替(參看下面)。在最終釋出的web站點開啟這個特性可能暴露一些安全資訊,

define_syslog_variables = Off
//是否定義各種系統日誌變數,建議關閉

error_log =
//將錯誤日誌記錄到哪個檔案中。該檔案必須對Web伺服器使用者可寫。建議留空,錯誤則被記錄到Web伺服器的錯誤日誌中。

log_errors = On
//是否在日誌檔案裡記錄錯誤

ignore_repeated_errors = On
//記錄錯誤日誌時是否忽略重複的錯誤資訊。錯誤資訊必須出現在同一檔案的同一行才被被視為重複。建議開啟,可以減少日誌記錄

四、其他安全設定
register_globals = Off
//關閉註冊全域性變數;全域性變數這個功能本身在程式是很容易實現的,沒必要php幫我們轉換。而且php自動將post,get等資料都註冊成全域性變數,這是非常危險的。

magic_quotes_gpc = On
//開啟引號轉義功能;開啟這個功能可以在一定程度防止SQL注入。Php會自動將post,get過來的資料做轉義。

expose_php = Off
//關閉php版本資訊;關閉該功能可以防止別人獲取伺服器的php版本資訊,然後利用該版本的漏洞進行攻擊。

allow_url_include = Off
//禁止include/require遠端檔案,降低木馬攻擊風險

enable_dl = On
//禁止用dl()方式載入php擴充套件

五、降低php的系統許可權(針對windows / apache / php)

在windows平臺下搭建的apache預設是system許可權,所以考慮安全性,就有需要給apache降低許可權。

net user user_apache pass_123 /add 
net localgroup users user_apache /del 

以上建立了一個不屬於任何組的使用者user_apache,密碼是pass_123

我們開啟系統服務,點apache服務的屬性,我們選擇登入,選擇此賬戶,我們填入上面所建立的賬戶和密碼,重啟apache服務。

這樣,apache執行在低許可權下了。

總結,通過修改php配置可以提高php網站安全性,但也沒有絕對的安全,這就需要我們平時去維護,定期檢查程式,做好備份,檢視apache訪問和錯誤日誌,檢查系統安全等等