[PHP 安全] pcc —— PHP 安全配置檢測工具

文章轉自: https://learnku.com/php/t/27016

背景

在 PHP 安全測試中最單調乏味的任務之一就是檢查不安全的 PHP 配置項。做爲一名 PHP 安全海報的繼承者,咱們建立了一個腳本用來幫助系統管理員如同安全專家同樣儘量快速且全面地評估 php.ini 和相關主題的狀態。在下文中,該腳本被稱做「PHP 安全配置項檢查器」,或者 pccphp

https://github.com/sektionein...

概念

  • 一個便於分發的單文件
  • 有對每一個安全相關的 ini 條目的簡單測試
  • 包含一些其餘測試 - 但不太複雜
  • 兼容 PHP >= 5.4, 或者 >= 5.0
  • 沒有複雜/過分設計的代碼,例如沒有類/接口,測試框架,類庫等等。它應該第一眼看上去是顯而易見的-甚至對於新手-這個工具怎麼使用能用來作什麼。
  • 沒有(或者少許的)依賴

使用 / 安裝

  • CLI:簡單調用 php phpconfigcheck.php。而後,添加參數 -a 以便更好的查看隱藏結果, -h 以 HTML 格式輸出, -j 以 JSON 格式輸出.
  • WEB: 複製這個腳本文件到你的服務器上的任意一個可訪問目錄,好比 root 目錄。參見下面的「防禦措施」。

    在非 CLI 模式下默認輸出 HTML 格式。能夠經過修改設置環境變量PCC_OUTPUT_TYPE=text 或者 PCC_OUTPUT_TYPE=json改變這個行爲。html

    一些測試用例默認是被隱藏的,特別是skipped、ok和 unknown/untested這些。要顯示所有結果,能夠用 phpconfigcheck.php?showall=1,但這並不適用於 JSON 輸出,它默認返回所有結果。
    在 WEB 模式下控制輸出格式用 phpconfigcheck.php?format=..., format的值能夠是 texthtml 或者 json中的一個,例如: phpconfigcheck.php?format=text。 format 參數優先於 PCC_OUTPUT_TYPE。laravel

保障措施

大多數狀況下,最好是本身來關注與安全性相關的問題好比PHP的配置。腳本已實現下列保障措施:git

  • mtime檢查:腳本在非CLI環境中只能工做兩天。能夠經過touch phpconfigcheck.php或者將腳本文件再次複製到你的服務器(例如經過SCP)來從新進行mtime檢查。能夠經過設置環境量: PCC_DISABLE_MTIME=1,好比在apache的.htaccess文件中設置SetEnv PCC_DISABLE_MTIME 1來禁用mtime檢查。
  • 來源IP檢查:默認狀況下,只有localhost (127.0.0.1 和 ::1)才能訪問這個腳本。其餘主機能夠經過在PCC_ALLOW_IP中添加IP地址或者通配符表達式的方式來訪問腳本,好比在.htaccess文件中設置SetEnv PCC_ALLOW_IP 10.0.0.*。你還能夠選擇經過SSH端口轉發訪問您的web服務器, 好比 ssh -D 或者 ssh -L

下載

能夠經過github下載第一個完整的開發版: https://github.com/sektionein...github

若是有好的建議或者遇到bug請給咱們提issue:web

截圖

HTML輸出的列表是根據問題嚴重性排序的,經過顏色代碼的形式列出了全部建議。列表頂部的狀態行會顯示問題的數量。apache

PHP

注意

這個工具只能用來支持你搭建一個安全的PHP環境,作不了其餘事。你的設置、軟件或任何相關的配置可能仍然是脆弱的,即便該工具的輸出代表狀況並不是如此。json

文章轉自: https://learnku.com/php/t/27016

更多文章: https://learnku.com/laravel/c...
相關文章
相關標籤/搜索