ht/wp-htnonce

该软件包最新版本(dev-master)没有可用的许可证信息。

用于改进Wordpress Nonces管理的原型。

dev-master 2017-08-21 09:55 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:25:55 UTC


README

用于改进Wordpress Nonces管理的原型。在WordPress内置Nonces生态系统之上提供了一个可扩展的验证器实现。

安装

HTNonce是一个支持Composer的WordPress插件。

  1. 检出
  • 直接从GitHub仓库克隆项目,然后运行以下命令安装依赖项
    $ composer install
  • 或者,将以下行添加到现有项目的composer.json文件的require部分
    "require": {
        "ht/wp-htnonce": "master"
    }

然后运行以下命令安装依赖项

    $ composer update
  1. 安装WordPress插件

按照以下手动插件安装部分的说明进行操作

WordPress插件安装

使用方法

使用方法简单直接。有关内部功能的详细信息,请查看类源文件内的内联文档。

如果未使用,则使用上下文名称delete-post:16创建nonce,否则如果上下文名称已被另一个nonce使用,则抛出异常

<?php
$nonce = new HTNonce('delete-post:16');

如果未使用,则使用上下文名称delete-post:16创建nonce,否则如果上下文名称已被另一个nonce使用,则加载现有nonce

<?php
$nonce = new HTNonce('delete-post:16', HTNonce::OPTION_FORCELOAD);

或者

<?php
$nonce = new HTNonce::get_nonce('delete-post:16');

如果未使用,则使用上下文名称delete-post:16创建nonce,否则如果上下文名称已被另一个nonce使用,则覆盖

<?php
$nonce = new HTNonce('delete-post:16', HTNonce::OPTION_FORCECREATE);

或者

<?php
$nonce = new HTNonce::new_nonce('delete-post:16');

使用上下文名称delete-post:16和默认选项(如果上下文名称已被使用,则抛出异常),使用一次性使用的验证器创建nonce

<?php
$nonce = new HTNonce('delete-post:16', NULL, array(new HTNonceOnceValidator()));

初始化HTNonce实例成功后,可以以下方法利用

为当前nonce实例创建url

<?php
$my_url = $nonce->create_url('http://www.mysite.com/posts/15?action=delete');

这将返回类似http://www.mysite.com/posts/15?action=delete&HTN_=z3asv3rt2d的url

要为当前nonce创建html输入,只需调用

<?php
$my_inputs = $nonce->create_input();

或者直接将输入控件渲染到html输出中

<?php
$nonce->render_input();

通过以下方式验证当前实例提供的动作上下文

<?php
$valid = $nonce->validate();

false的结果表示无效,1表示nonce仍然有效,并且是在最多12小时前创建的,2表示nonce仍然有效,并且是在超过12小时前创建的。

如果您希望通过其http有效载荷验证当前请求,只需调用

<?php
$valid = $nonce->validate_request();

Ajax请求将自动处理。

您还可以覆盖默认的字段名以在有效载荷中查找,以及如果nonce无效要采取的操作

<?php
$valid = $nonce->validate_request('my_query_field', false);

此调用将在my_query_field中查找有效的nonce散列,并且如果无效则不会die()

结束语

此WordPress插件是为了演示目的编写的,仅应被视为非功能原型。尽管如此,此软件的任何部分都可以免费用于任何目的,无需请求许可。祝您玩得开心!