[PHP 安全] pcc —— PHP 安全配置检测工具
文章轉自:learnku.com/php/t/27016
背景
在 PHP 安全測試中最單調(diào)乏味的任務之一就是檢查不安全的 PHP 配置項。作為一名 PHP 安全海報的繼承者,我們創(chuàng)建了一個腳本用來幫助系統(tǒng)管理員如同安全專家一樣盡可能快速且全面地評估 php.ini 和相關主題的狀態(tài)。在下文中,該腳本被稱作“PHP 安全配置項檢查器”,或者 pcc。
github.com/sektioneins…
概念
- 一個便于分發(fā)的單文件
- 有對每個安全相關的 ini 條目的簡單測試
- 包含一些其他測試 - 但不太復雜
- 兼容 PHP >= 5.4, 或者 >= 5.0
- 沒有復雜/過度設計的代碼,例如沒有類/接口,測試框架,類庫等等。它應該第一眼看上去是顯而易見的-甚至對于新手-這個工具怎么使用能用來做什么。
- 沒有(或者少量的)依賴
使用 / 安裝
-
CLI:簡單調(diào)用?php phpconfigcheck.php。然后,添加參數(shù)?-a?以便更好的查看隱藏結果,?-h?以 HTML 格式輸出,?-j?以 JSON 格式輸出.
-
WEB: 復制這個腳本文件到你的服務器上的任意一個可訪問目錄,比如 root 目錄。參見下面的“防護措施”。
在非 CLI 模式下默認輸出 HTML 格式。可以通過修改設置環(huán)境變量PCC_OUTPUT_TYPE=text?或者?PCC_OUTPUT_TYPE=json改變這個行為。
一些測試用例默認是被隱藏的,特別是skipped、ok和 unknown/untested這些。要顯示全部結果,可以用?phpconfigcheck.php?showall=1,但這并不適用于 JSON 輸出,它默認返回全部結果。 在 WEB 模式下控制輸出格式用?phpconfigcheck.php?format=...,?format的值可以是?text,?html?或者?json中的一個,例如:?phpconfigcheck.php?format=text。?format?參數(shù)優(yōu)先于 PCC_OUTPUT_TYPE。
保障措施
大多數(shù)情況下,最好是自己來關注與安全性相關的問題比如PHP的配置。腳本已實現(xiàn)下列保障措施:
-
mtime檢查:腳本在非CLI環(huán)境中只能工作兩天。可以通過touch phpconfigcheck.php或者將腳本文件再次復制到你的服務器(例如通過SCP)來重新進行mtime檢查。可以通過設置環(huán)境量:?PCC_DISABLE_MTIME=1,比如在apache的.htaccess文件中設置SetEnv PCC_DISABLE_MTIME 1來禁用mtime檢查。
-
來源IP檢查:默認情況下,只有l(wèi)ocalhost (127.0.0.1 和 ::1)才能訪問這個腳本。其他主機可以通過在PCC_ALLOW_IP中添加IP地址或者通配符表達式的方式來訪問腳本,比如在.htaccess文件中設置SetEnv PCC_ALLOW_IP 10.0.0.*。你還可以選擇通過SSH端口轉發(fā)訪問您的web服務器, 比如?ssh -D?或者?ssh -L。
下載
可以通過github下載第一個完整的開發(fā)版:?github.com/sektioneins…
如果有好的建議或者遇到bug請給我們提issue:
截圖
HTML輸出的列表是根據(jù)問題嚴重性排序的,通過顏色代碼的形式列出了所有建議。列表頂部的狀態(tài)行會顯示問題的數(shù)量。
注意
這個工具只能用來支持你搭建一個安全的PHP環(huán)境,做不了其他事。你的設置、軟件或任何相關的配置可能仍然是脆弱的,即使該工具的輸出表明情況并非如此。
文章轉自:learnku.com/php/t/27016
更多文章:learnku.com/laravel/c/t…
轉載于:https://juejin.im/post/5cb8363251882532a42c10c9
總結
以上是生活随笔為你收集整理的[PHP 安全] pcc —— PHP 安全配置检测工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。