ympervej / wp-oop-nonces-csrf
此包可以在面向对象的环境中启用WordPress的nonce功能
Requires
- php: >=5.6.0
Requires (Dev)
- phpunit/phpunit: ^5
This package is not auto-updated.
Last update: 2024-09-29 04:14:36 UTC
README
#WordPress 面向对象环境中的 Nonces
一个 composer 包,用于在面向对象环境中处理 WordPress Nonces 的功能。
#要求
Wordpress Version: Minimum 4.8 PHP Version: Minimum 5.6 PHP Unit Version: 5
#安装 在您的 composer.json 文件中将此包添加为要求,然后运行 'composer update'
"ympervej/wp-oop-nonces-csrf": "1.0.*"
或者直接运行
composer require ympervej/wp-oop-nonces-csrf
##使用方法
添加到 active 主题的 functions.php 中
// Autoload files using Composer autoload require __DIR__ . '/vendor/autoload.php';
##示例
###创建一个 nonce
这将创建一个与特定操作关联的加密令牌
####### 参数 string 或 int $action 附加上下文的标量值。 ####### 返回令牌。
$Wp_Csrf_Nonce = new \wp_oop_nonce_csrf\Wp_Oop_Nonces_Csrf(); $csrf_nonce_create = $Wp_Csrf_Nonce->wp_oop_create_nonce( $action );
例如
<a href='my_url.php?nonce_something=nonce_action&_wpnonce=<?php echo $csrf_nonce_create; ?>'>Your Nonce Action</a>
###验证一个 nonce
验证是否使用了正确的 nonce 并设置了时间限制。
####### 参数 $nonce 和 $action。 ####### 返回布尔值或 1。
$Wp_Csrf_Nonce = new \wp_oop_nonce_csrf\Wp_Oop_Nonces_Csrf(); $csrf_nonce_verify = $Wp_Csrf_Nonce->wp_oop_verify_nonce( $nonce, $action );
###将 nonce 添加到 URL
检索添加了 nonce 的 URL 查询。
####### 参数 $action_url、$action 和 $name。 ####### 返回添加了 nonce 动作的转义 URL。
$Wp_Csrf_Nonce = new \wp_oop_nonce_csrf\Wp_Oop_Nonces_Csrf(); $csrf_nonce_url = $Wp_Csrf_Nonce->wp_oop_nonce_csrf_URL($action_url, $action, $name );
###将 nonce 添加到表单
检索添加了 nonce 的 URL 查询。
####### 参数 action、$name、$referer、$echo。 ####### 返回 nonce 字段 HTML 标记。
$Wp_Csrf_Nonce = new \wp_oop_nonce_csrf\Wp_Oop_Nonces_Csrf(); $csrf_nonce_field = $Wp_Csrf_Nonce->wp_oop_nonce_csrf_field(action, $name, $referer, $echo );
###Ajax Nonce 验证 ###验证 AJAX 请求中传递的 nonce ####### 参数 $action、$query_arg、$die。 ####### 返回布尔值或 1。
$Wp_Csrf_Nonce = new \wp_oop_nonce_csrf\Wp_Oop_Nonces_Csrf(); $csrf_nonce_ajax_ref = $Wp_Csrf_Nonce->wp_oop_nonce_csrf_checka_ajax_referer($action, $query_arg, $die);
管理 nonce 验证。
####确保用户是从另一个管理页面引用的。 ####### 参数 $action、$query_arg。 ####### 返回布尔值或 1。
$Wp_Csrf_Nonce = new \wp_oop_nonce_csrf\Wp_Oop_Nonces_Csrf(); $csrf_nonce_admin_ref = $Wp_Csrf_Nonce->wp_oop_nonce_csrf_check_admin_referer($action, $query_arg);
###显示 nonce 动作消息。 ####这将显示 '您确定要执行此操作吗?' 消息以确认要执行的操作。 ####### 参数 $action。 ####### 返回布尔值或 1。
$Wp_Csrf_Nonce = new \wp_oop_nonce_csrf\Wp_Oop_Nonces_Csrf(); $csrf_action_text = $Wp_Csrf_Nonce->wp_oop_nonce_csrf_ays($action);
###检索或显示表单的 referer 隐藏字段。 ####参照器链接是来自服务器超全局的当前请求 URI。 ####### 参数 $echo Boolean。 ####### 返回 referer 字段 HTML 标记。
$Wp_Csrf_Nonce = new \wp_oop_nonce_csrf\Wp_Oop_Nonces_Csrf(); $csrf_refer_field = $Wp_Csrf_Nonce->wp_oop_nonce_csrf_referer_field($echo);
如何运行单元测试
- 在终端运行此命令
$ CD /wordpress/your-theme-folder/wp-oop-nonces-csrf
- 在 dev 上安装 PHP Unit
$ composer require --dev phpunit/phpunit:~5
-
将测试目录从 "/vendor/ympervej/wp-oop-nonces-csrf/tests" 复制到 "your-theme-folder/wp-oop-nonces-csrf"
-
运行 Composer Update
$ composer update
- 在终端运行此命令进行测试
$ ./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/WpOopCsrfTest
- 您还可以使用此进行测试
$ ./vendor/bin/phpunit --bootstrap vendor/autoload.php --testdox tests