cruxoid/slim2-csrf

Slim2 框架的 CSRF 安全库

v1.2 2020-10-23 14:25 UTC

This package is auto-updated.

Last update: 2024-09-24 00:09:13 UTC


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!!
}

设置完成!