internetpixels /csrf-protection
该包最新版本(0.2)没有可用的许可证信息。
使用链接和表单中的CSRF保护令牌来保护您的Web应用免受恶意请求
0.2
2022-09-16 12:15 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: 3.*
This package is auto-updated.
Last update: 2024-09-16 17:07:53 UTC
README
通过在链接和表单中使用CSRF保护令牌来保护您的Web应用免受恶意请求。此CSRF保护库不使用会话、文件、内存存储或数据库。
基本示例
以下示例中包含3个最重要的方法
TokenManager::create();
TokenManager::createHtmlField();
TokenManager::validate();
完整命名空间为 InternetPixels\CSRFProtection\TokenManager
。
设置TokenManager
您必须为安全的TokenManager设置一些设置。请用您自己的盐覆盖。
<?php TokenManager::setSalt('P*17OJznMttaR#Zzwi4YhAY!H7hPGUCd', 'ERGirehgr4893ur43tjrg98rut98ueowifj'); TokenManager::setUserId(7); TokenManager::setSessionToken('session_token');
创建一个安全表单
TokenManager可以提高安全性
<form action="/your/page" method="post"> <?= TokenManager::createHtmlField('my_form') ?> </form>
创建一个安全链接
当用户想要删除您的应用程序中的项目时,您想确保请求是有效的。创建一个令牌并将其添加到您的删除页面链接中。
<a href="/posts/delete/1?token=<?= TokenManager::create('delete_post') ?>">Delete Post</a>
在删除操作中,您想使用 TokenManager::validate()
方法验证令牌。
验证用户输入
一旦用户将表单数据提交到您的服务器,您首先需要验证提供的令牌。默认情况下,使用的字段名是 _token
。
<?php if( filter_has_var(INPUT_POST, '_token') ) { if( TokenManager::validate('my_form', filter_input(INPUT_POST, '_token')) ) { // valid token } else { // invalid token } }