PHP安全之道學習筆記1 PHP專案安全設定

2022-01-10 01:09:38 字數 1560 閱讀 6447

在全球範圍來看,超過了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安全之道學習筆記6 密碼安全

最近幾年使用者資料洩露越發頻繁,一些使用php技術的大型 被暴庫或者脫庫,facebook公司曾因為此類事件股價 從長遠發展來看,使用者的資料安全對於 來說至關重要,所以開發者需要關注資料相關的安全,並提高一些對敏感資料的技術性保護。使用者資料的安全往往和使用者密碼安全息息相關。使用者將賬號和相關資...

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

在全球範圍來看,超過了80 的 是使用php進行搭建的,由於指令碼語言和早期版本設計的諸多原因,php專案存在不少安全隱患。從配置選項來看,可以做如下的優化。display errors off 不要將錯誤堆疊資訊直接輸出到網頁上,防止黑客加以利用相關資訊。正確的做法是 把錯誤日誌寫到日誌檔案中,方...

PHP安全之道學習筆記4 系統命令注入

我們有時候寫 會用php指令碼去呼叫系統函式完成業務功能,但是一些系統函式屬於高危操作,一旦被webshell或者抓住漏洞則後患極大。下面整理如下風險系統函式.該函式可以執行系統命令,並且返回輸出結果到 output中。具體使用請參考官網。例如 使用者訪問 http localhost exec.p...