chinleung/tokenizer

PHP 标记解析器

此软件包的官方仓库似乎已不存在,因此该软件包已被冻结。

1.0.2 2016-08-31 23:52 UTC

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

有关项目的更多信息,请参阅文档