internetpixels/csrf-protection

该包最新版本(0.2)没有可用的许可证信息。

使用链接和表单中的CSRF保护令牌来保护您的Web应用免受恶意请求

0.2 2022-09-16 12:15 UTC

This package is auto-updated.

Last update: 2024-09-16 17:07:53 UTC


README

通过在链接和表单中使用CSRF保护令牌来保护您的Web应用免受恶意请求。此CSRF保护库不使用会话、文件、内存存储或数据库。

License Build Status Maintainability

基本示例

以下示例中包含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
    }
}