cruxoid / slim2-csrf
Slim2 框架的 CSRF 安全库
v1.2
2020-10-23 14:25 UTC
Requires
- php: >=7.0
README
Slim2 框架中 CSRF 的简单实现
入门指南
使用以下命令通过 composer 下载
composer require cruxoid/slim2-csrf
设置参考
你的 slim 可能已经初始化,如下所示
$app = new \Slim\Slim(array(
'templates.path' => './app/templates',
'view' => new \Slim\Views\Twig(),
'cookies.encrypt' => true,
)
);
添加以下行
$app->add( new Cruxoid\Middleware\CsrfMiddleware);
设置完成,现在回到你的 twig 模板中,在表单内添加以下内容
<form action="/process" method="POST">
<input type="hidden" class="form-control" name="{{csrf_key}}" value="{{csrf_token}}"/>
Favorite color: <input type="text" name="favoriteColor">
<button type="submit">Submit</button>
</form>
验证 CSRF Token
验证包含 CSRF Token 的表单数据是否与会话数据匹配,即
$csrf_token = $_POST['csrf_token'];
$session_csrf_token = $_SESSION['csrf_token'];
if($csrf_token == $session_csrf_token){
//successfully token match, proceed with the form submission
} else {
//CSRF Voilated, error!!
}
设置完成!