背景
https://github.com/sektioneins/pcc
概念
一个便于分发的单文件
有对每个安全相关的 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 改变这个行为.
一些测试用例默认是被隐藏的, 特别是 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.
保障措施
大多数情况下, 最好是自己来关注与安全性相关的问题比如 PHP 的配置. 脚本已实现下列保障措施:
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/sektioneins/pcc
如果有好的建议或者遇到 bug 请给我们提 issue:
截图
HTML 输出的列表是根据问题严重性排序的, 通过颜色代码的形式列出了所有建议. 列表顶部的状态行会显示问题的数量.
注意
这个工具只能用来支持你搭建一个安全的 PHP 环境, 做不了其他事. 你的设置, 软件或任何相关的配置可能仍然是脆弱的, 即使该工具的输出表明情况并非如此.
来源: https://segmentfault.com/a/1190000018912225