《PHP安全之道》讀書筆記1 PHP專案安全設定

2021-10-01 17:12:49 字數 1565 閱讀 7005

在全球範圍來看,超過了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

當關閉後,就只能從$_post、$_get、$_request裡面獲取相關引數。

可以通過open_basedir來限制php可以訪問的系統目錄。

如果不限制使用下面的指令碼**(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/www

taint

用於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下,這個檔案在...