resonantcore/anti-csrf
最新稳定版本:v2.3.0
Composer 安装命令:
composer require resonantcore/anti-csrf
包简介
Paragon Initiative's Anti-CSRF Security Library
README 文档
README
Motivation
There aren't any good session-powered CSRF prevention libraries. By good we mean:
- CSRF tokens can be restricted to any or all of the following:
- A particular session
- A particular HTTP URI
- A particular IP address (optional)
- Multiple CSRF tokens can be stored
- CSRF tokens expire after one use
- An upper limit on the number of tokens stored with session data is enforced
- In our implementation, the oldest are removed first
Warning - Do not use in any project where all $_SESSION data is stored
client-side in a cookie. This will quickly run up the 4KB storage max for
an HTTP cookie.
Using it in Any Project
See autoload.php for an SPL autoloader.
Using it with Twig templates
First, add a filter like this one:
use \ParagonIE\AntiCSRF\AntiCSRF; $twigEnv->addFunction( new \Twig_SimpleFunction( 'form_token', function($lock_to = null) { static $csrf; if ($csrf === null) { $csrf = new AntiCSRF; } return $csrf->insertToken($lock_to, false); }, ['is_safe' => ['html']] ) );
Next, call the newly created form_token function from your templates.
<form action="/addUser.php" method="post"> {{ form_token("/addUser.php") }} {# ... the rest of your form here ... #} </form>
Validating a Request
$csrf = new \ParagonIE\AntiCSRF\AntiCSRF; if (!empty($_POST)) { if ($csrf->validateRequest()) { // Valid } else { // Log a CSRF attack attempt } }
Support Contracts
If your company uses this library in their products or services, you may be interested in purchasing a support contract from Paragon Initiative Enterprises.
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 269
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: (MIT or AGPL-3.0) 2b2579108d35e569ff8b312fb87728db12bfd90d
- 更新时间: 2015-02-28