leonardini / brontosaurus
网站 PHP 安全审计工具
Requires
- symfony/yaml: ^4.2 || ^5.0
Requires (Dev)
- phpunit/phpunit: ^8.1 || ^9.0
This package is auto-updated.
Last update: 2024-01-29 03:20:47 UTC
README
Brontosaurus

Brontosaurus 是您的 PHP 网站的 安全工具。
当前功能包括
- 表单令牌验证
目录
安装
安装 Brontosaurus 最简单的方法是使用 Composer
composer require leonardini/brontosaurus
如果您更喜欢,可以下载 最新版本 并手动将文件添加到您的项目中。请注意,这不被鼓励,因为您将无法轻松更新库。
警告:请确保在
src
文件夹内require_once
每个 文件
入门指南
注意:此教程假设您已使用 Composer 安装了 Brontosaurus,如果您还没有,您仍然可以按照此教程操作,但某些部分会有所不同
要使用 Brontosaurus,您必须在 Composer 的 vendor 文件夹中 require_once
autoload.php
文件。
require_once("vendor/autoload.php");
实际上,要使 Brontosaurus 和所有其工具正常运行,您只需做这一件事。有关使用示例,请参阅下一节关于 表单令牌 的内容
表单令牌
当您的网站有表单时,您通常只想接收来自您合法页面的提交,而不是来自其他来源,例如未经授权的第三方服务。
考虑到这个问题无法完全解决,Brontosaurus 提供了一个实用的工具,可以帮助您使表单的安全性提高一点。
该工具通过在表单页面加载时生成一个隐藏的随机令牌来实现。这个令牌会与表单数据一起发送到服务器,并检查其是否与会话中保存的令牌相同。为了支持用户打开多个浏览器标签,最后20个令牌 将保存在会话中(这个数字可以自定义,请查看配置部分)。
您需要在表单页面上添加的代码如下
// It is extremely important that a descriptive form name is provided as parameter, because tokens must be strictly linked to every form of your website $token = \Brontosaurus\FormToken\generateToken("form_name"); // The token must be sent to the server in a 'form_token' parameter, for security only POST request are supported echo "<input type=\"hidden\" name=\"form_token\" value=\"$token\">"; // The form name must be sent in a 'form_name' parameter, too echo "<input type=\"hidden\" name=\"form_name\" value=\"form_name\">";
要验证令牌的有效性,您将使用以下代码
$validation = \Brontosaurus\FormToken\validateToken("form_name"); if($validation->isSuccessful()) { // The token comes from your form } else { // The token has not passed the check }
有关验证过程的详细信息可以通过 $validation->getCode()
获取。请查看 ValidationCode
枚举。
配置
Brontosaurus 可以通过一个 yml 文件进行配置。要加载配置文件,请使用以下命令:
\Brontosaurus\Config::loadFromFile(__DIR__."/config.yml");
您还可以卸载您的自定义配置(默认配置将被恢复)
\Brontosaurus\Config::unloadConfig();
以下是一个示例配置文件:
form_token: maximum_tokens: 40