在全球範圍來看,超過了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安全
PHP安全之道學習筆記1 PHP專案安全設定
在全球範圍來看,超過了80 的 是使用php進行搭建的,由於指令碼語言和早期版本設計的諸多原因,php專案存在不少安全隱患。從配置選項來看,可以做如下的優化。display errors off 不要將錯誤堆疊資訊直接輸出到網頁上,防止黑客加以利用相關資訊。正確的做法是 把錯誤日誌寫到日誌檔案中,方...
PHP讀書筆記(一)
記錄一些php基礎學習的容易被忽略的知識點 一 對於任何簡單型別的變數,都可以將變數寫入到乙個由雙引號引起來的字串,如 echo tireqty tires 在雙引號中,變數名稱將被變數值所替代。而在單引號中,變數名稱,或者任何其他文字都會不經修改而傳送給瀏覽器。二 heredoc語法,用來指定字串...
PHP學習筆記1 PHP的標記風格與注釋
php是伺服器端的程式語言。它的書寫方式有4種,即它有4種標記的風格 1.xml 標記風格 echo 這是xml標記的風格 2.指令碼風格 3.簡短風格 4.asp 風格 echo 這是asp風格的標記 如果要使用簡短風格,或者asp風格,就要在php.ini檔案中進行配置。在win7下,這個檔案在...