chinleung / tokenizer
PHP 标记解析器
此软件包的官方仓库似乎已不存在,因此该软件包已被冻结。
Requires
- php: ^5.4
This package is auto-updated.
Last update: 2019-04-30 23:26:45 UTC
README
此仓库包含一个开源PHP类,允许您将HTML DOM(文档对象模型)中的元素id、属性或任何字符串更改为随机占位符字符串,从而使访客难以理解DOM并通过浏览器控制台进行更改。
安装
Tokenizer可在Packagist上找到,这意味着您可以使用Composer安装它。
通过命令行界面(CLI)安装
composer require chinleung/tokenizer
通过composer.json
安装,请添加以下内容
{
"require": {
"chinleung/tokenizer": "^1.0"
}
}
如果您不使用composer,您始终可以通过下载软件包并将src
文件夹包含到您的应用程序中来手动安装它。
简介
在开始使用之前,让我解释一下它是如何工作的。Tokenizer是一个实例,通常存储在会话中,它将包含一系列标记页面(将其视为类别)。在其中的每个页面上,它们都有自己的标记。标记是一个具有名称、值和加密字符串(标记)的对象。例如,我的标记被命名为"Token 1"
,其值为"156"
(假设它是数据库行的id),其标记为"2LCk04CpGX93SekDvgQe"
。值"2LCk04CpGX93SekDvgQe"
将在DOM中打印,并且不能解密,因为'加密'只是一个您指定的随机字符串,其大小可以不同,并且可以因标记而异。
每个标记页面和标记都有自己的过期时间。因此,如果标记在30分钟内未使用(由您选择),则在下一次生成时,其加密将不同。因此,我的标记1将不再是"2LCk04CpGX93SekDvgQe"
,它将是一个随机的字符串,但它的值156
将隐藏在加密之后。
| - Tokenizer
|
| -- Page 1 (Token: "Mr41X5YMMJvIeNCBh3qD")
| --- Token 1 (Value: 156 - Token: "2LCk04CpGX93SekDvgQe")
| --- Token 2 (Value: "FAOSFD" - Token: "ADFadfasdfa912")
| --- Token 3 (Value: NULL - Token: "RwHYqXr")
|
| -- Page 2 (Token: "KIWHGm3L4wO5qumbyeWq")
| --- Token 1 (Value: NULL - Token: "WBeDYMsezKSsQgIQUtYy7RuAnwLlfj")
| --- Token 2 (Value: NULL - Token: "2Lpvz1OEr")
使用方法
包含自动加载
如果您使用composer安装,则应像这样包含autoload.php
require('vendor/autoload.php');
如果您手动安装,只需将以下代码中的my-path-to-package
替换为指向您的autoload.php
的路径。
require('my-path-to-package/src/autoload.php');
命名空间
由于Tokenizer位于命名空间Tokenizer中,您需要以下内容
use Tokenizer\Tokenizer;
如果您不想添加上面的use,您始终可以在引用Tokenizer包时使用前缀\Tokenizer\Tokenizer
。
启动Tokenizer
要启动Tokenizer,只需运行命令start()
Tokenizer::start();
启动命令会创建一个Tokenizer实例,并将其存储在您的PHP $_SESSION
中(如果它尚未存在)。如果它已经存在且实例尚未过期,它将简单地删除过期的令牌。将Tokenizer实例存储在会话中是为了即使在浏览其他页面时也能保持令牌可用。如果您出于某种原因想手动启动它,可以这样做:
// Assign the instance to a variable
$tokenizer = new Tokenizer();
// Assign it to the $_SESSION manually
$_SESSION['myIndex'] = new Tokenizer();
注意:变量中的所有令牌都将被销毁,并且无法通过其他页面访问,因为它没有存储在会话中。
选项
在启动Tokenizer时,您可以通过一个关联数组传递不同的选项。
选项 | 类型 | 默认值 | 描述 |
---|---|---|---|
page-expiration | 整数 | 1800 | 在页面不活跃之前,令牌页面在多少秒后会过期。当页面过期时,其所有令牌也会过期。 |
session-index | 字符串 | tokenizer | 当Tokenizer以静态方式调用时,它引用会话中的一个索引。更改此值可以更改PHP会话中Tokenizer的索引。如果您使用两个不同的session-index设置启动Tokenizer,第二个session-index将覆盖第一个。 |
token-expiration | 整数 | 1800 | 在令牌不活跃之前,令牌在多少秒后会过期。当令牌过期时,它将从令牌页面中删除。 |
tokenizer-expiration | 整数 | 1800 | Tokenizer实例本身在多少秒后会过期。 |
因此,如果您想以自定义选项启动Tokenizer,例如,使令牌页面在10分钟不活跃后过期而不是默认的30分钟
Tokenizer::start(array('page-expiration' => 600));
Wiki
有关项目的更多信息,请参阅文档。