prakashr / easynonces
收集了所有WordPress非ces的使用,以便以面向对象的方式轻松使用。
此包的官方仓库似乎已消失,因此该包已被冻结。
v1.0
2019-10-30 09:52 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2019-10-30 10:08:43 UTC
README
WP Easynonces 是一个PHP库,其中收集了所有WordPress非ces,以便以面向对象的方式使用。非ces保护WordPress站点免受基于跨站请求伪造(CSRF)的恶意利用。这种黑客技术涉及从网站信任的用户发送未经授权的命令。WordPress本身将非ces定义为“一个‘一次使用’的数字,用于帮助保护URL和表单免受某些类型的误用,无论是恶意的还是其他类型的”
WordPress提供的Wp Nonces函数的翻译
- $this->en_create() 是 wp_create_nonce 的转换
- $this->en_create_url() 是 wp_nonce_url 的转换
- $this->en_create_field() 是 wp_nonce_field 的转换
- $this->en_verify() 是 wp_verify_nonce 的转换
- $this->en_admin_check() 是 check_admin_referer 的转换
- $this->en_ajax_check() 是 check_ajax_referer 的转换
文件夹结构
将包添加到您想要的文件夹,您将得到以下文件夹结构
- Vendor(包含composer库的文件夹)
- src(文件夹)-- easyNonces(文件夹)--- easyNonces.php(文件)
- composer.json(文件)
- composer.lock(文件)
如何使用
通过以下命令在所需位置包含autoload文件
<?php require_once 'vendor/autoload.php'; ?>
包含autoload文件后,您可以使用nonces库如下
<?php
use easyNonces\easyNonces;
echo easyNonces::check();
?>
上述函数用于检查包的正确包含,如果一切正常,上述命令将提供以下输出
easyNonces现在已激活!!
现在,您可以使用以下列表中的其他函数
1. 对于 wp_create_nonce
生成并返回一个nonce。nonce的生成基于当前时间、$action参数和当前用户ID。
<?php
use easyNonces\easyNonces;
echo easyNonces::en_create();
?>
示例
<?php
// create nonce
$nonce = easyNonces::en_create( 'my-nonce' );
// verify
$nonce = $_REQUEST['_wpnonce'];
if ( ! easyNonces::en_verify( $nonce, 'my-nonce' ) ) {
?>
2. 对于 wp_nonce_url
检索带有附加到URL查询的非ces的URL。
<?php
use easyNonces\easyNonces;
echo easyNonces::en_create_url();
?>
示例
<a href="<?php print easyNonces::en_create_url(admin_url('options.php?page=my_plugin_settings'), 'doing_something', 'my_nonce');?>"
3. 对于 wp_nonce_field
检索或显示隐藏的非ces表单字段。
<?php
use easyNonces\easyNonces;
echo easyNonces::en_create_field();
?>
示例
<form method="post">
<!-- some inputs here ... -->
<?php easyNonces::en_create_field( 'name_of_my_action', 'name_of_nonce_field' ); ?>
</form>
4. 对于 wp_verify_nonce
验证nonce是否正确且未过期,针对指定操作。
<?php
use easyNonces\easyNonces;
echo easyNonces::en_verify();
?>
示例
<?php
$nonce = $_REQUEST['_wpnonce'];
if ( ! easyNonces::en_verify( $nonce, 'my-nonce' ) ) {
die( 'Security check' );
} else {
// Do stuff here.
}
?>
5. 对于 check_admin_referer
测试当前请求是否包含有效的nonce,或当前请求是否来自管理屏幕;
<?php
use easyNonces\easyNonces;
echo easyNonces::en_admin_check();
?>
示例
<?php
easyNonces::en_admin_check( 'name_of_my_action', 'name_of_nonce_field' );
// process form data, e.g. update fields
// you can use it in a IF statement if you want, not mandatory because there is not "false" return, only true or die().
// Display the form
?>
6. 对于 check_ajax_referer
<?php
use easyNonces\easyNonces;
echo easyNonces::en_ajax_check();
?>
示例
<?php
add_action( 'wp_ajax_my_action', 'my_action_function' );
function my_action_function() {
easyNonces::en_ajax_check( 'my-special-string', 'security' );
echo sanitize_text_field( $_POST['my_string'] );
wp_die();
}
?>
许可证
MIT
自由软件,太棒了!