[PHP 安全] pcc —— PHP 安全配置检测工具

文章转自:learnku.com/php/t/27016
php

背景

在 PHP 安全测试中最单调乏味的任务之一就是检查不安全的 PHP 配置项。做为一名 PHP 安全海报的继承者,咱们建立了一个脚本用来帮助系统管理员如同安全专家同样尽量快速且全面地评估 php.ini 和相关主题的状态。在下文中,该脚本被称做“PHP 安全配置项检查器”,或者 pcchtml

github.com/sektioneins…laravel

概念

  • 一个便于分发的单文件
  • 有对每一个安全相关的 ini 条目的简单测试
  • 包含一些其余测试 - 但不太复杂
  • 兼容 PHP >= 5.4, 或者 >= 5.0
  • 没有复杂/过分设计的代码,例如没有类/接口,测试框架,类库等等。它应该第一眼看上去是显而易见的-甚至对于新手-这个工具怎么使用能用来作什么。
  • 没有(或者少许的)依赖

使用 / 安装

  • CLI:简单调用 php phpconfigcheck.php。而后,添加参数 -a 以便更好的查看隐藏结果, -h 以 HTML 格式输出, -j 以 JSON 格式输出.git

  • WEB: 复制这个脚本文件到你的服务器上的任意一个可访问目录,好比 root 目录。参见下面的“防御措施”。github

    在非 CLI 模式下默认输出 HTML 格式。能够经过修改设置环境变量PCC_OUTPUT_TYPE=text 或者 PCC_OUTPUT_TYPE=json改变这个行为。web

    一些测试用例默认是被隐藏的,特别是skipped、ok和 unknown/untested这些。要显示所有结果,能够用 phpconfigcheck.php?showall=1,但这并不适用于 JSON 输出,它默认返回所有结果。 在 WEB 模式下控制输出格式用 phpconfigcheck.php?format=..., format的值能够是 texthtml 或者 json中的一个,例如: phpconfigcheck.php?format=text。 format 参数优先于 PCC_OUTPUT_TYPE。apache

保障措施

大多数状况下,最好是本身来关注与安全性相关的问题好比PHP的配置。脚本已实现下列保障措施:json

  • 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下载第一个完整的开发版: github.com/sektioneins…

若是有好的建议或者遇到bug请给咱们提issue:

截图

HTML输出的列表是根据问题严重性排序的,经过颜色代码的形式列出了全部建议。列表顶部的状态行会显示问题的数量。

PHP

注意

这个工具只能用来支持你搭建一个安全的PHP环境,作不了其余事。你的设置、软件或任何相关的配置可能仍然是脆弱的,即便该工具的输出代表状况并不是如此。

文章转自:learnku.com/php/t/27016
更多文章:learnku.com/laravel/c/t…

相关文章
相关标签/搜索