在全球範圍來看,超過了80%的**是使用php進行搭建的,由於指令碼語言和早期版本設計的諸多原因,php專案存在不少安全隱患。從配置選項來看,可以做如下的優化。
display_errors=off不要將錯誤堆疊資訊直接輸出到網頁上,防止黑客加以利用相關資訊。
正確的做法是:
把錯誤日誌寫到日誌檔案中,方便排查問題。
response headers
x-powered-by: php/7.2.0
將php.ini中如下的配置值改為off
expose_php=off
如果開啟了全域性變數,則伺服器端php指令碼可以用$username和$password來獲取到使用者名稱和密碼,這會造成極大的指令碼注入危險。
開啟方法是在php.ini中修改如下:
register_globals=on建議關閉,引數如下:
register_globals=off可以通過open_basedir來限制php可以訪問的系統目錄。當關閉後,就只能從$_post、$_get、$_request裡面獲取相關引數。
如果不限制使用下面的指令碼**(hack.php)可以獲取到系統密碼。
<?php
echo file_get_contents('/etc/passwd');
php warning: file_get_contents(): open_basedir restriction in effect. file(/etc/passwd) is not within the allowed path(s): (/var/www) in /var/www/hack.php on line 3
warning: file_get_contents(): open_basedir restriction in effect. file(/etc/passwd) is not within the allowed path(s): (/var/www) in /var/www/hack.php on line 3
php warning: file_get_contents(/etc/passwd): failed to open stream: operation not permitted in /var/www/hack.php on line 3
warning: file_get_contents(/etc/passwd): failed to open stream: operation not permitted in /var/www/hack.php on line 3
設定方法如下:
open_basedir=/var/wwwtaint
用於xss/sqli/shell注入的檢測。
安裝使用教程
PHP安全之道學習筆記6 密碼安全
最近幾年使用者資料洩露越發頻繁,一些使用php技術的大型 被暴庫或者脫庫,facebook公司曾因為此類事件股價 從長遠發展來看,使用者的資料安全對於 來說至關重要,所以開發者需要關注資料相關的安全,並提高一些對敏感資料的技術性保護。使用者資料的安全往往和使用者密碼安全息息相關。使用者將賬號和相關資...
《PHP安全之道》讀書筆記1 PHP專案安全設定
在全球範圍來看,超過了80 的 是使用php進行搭建的,由於指令碼語言和早期版本設計的諸多原因,php專案存在不少安全隱患。從配置選項來看,可以做如下的優化。display errors off 不要將錯誤堆疊資訊直接輸出到網頁上,防止黑客加以利用相關資訊。正確的做法是 把錯誤日誌寫到日誌檔案中,方...
PHP安全之道學習筆記4 系統命令注入
我們有時候寫 會用php指令碼去呼叫系統函式完成業務功能,但是一些系統函式屬於高危操作,一旦被webshell或者抓住漏洞則後患極大。下面整理如下風險系統函式.該函式可以執行系統命令,並且返回輸出結果到 output中。具體使用請參考官網。例如 使用者訪問 http localhost exec.p...