文章转自:learnku.com/php/t/27016
php
在 PHP 安全测试中最单调乏味的任务之一就是检查不安全的 PHP 配置项。做为一名 PHP 安全海报的继承者,咱们建立了一个脚本用来帮助系统管理员如同安全专家同样尽量快速且全面地评估 php.ini 和相关主题的状态。在下文中,该脚本被称做“PHP 安全配置项检查器”,或者 pcc。html
github.com/sektioneins…laravel
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
的值能够是 text
, html
或者 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环境,作不了其余事。你的设置、软件或任何相关的配置可能仍然是脆弱的,即便该工具的输出代表状况并不是如此。