WordPress中的Nonce有什么用

  介绍

这篇文章主要介绍WordPress中的Nonce有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

<强> WordPress中的Nonce

现时标志是使用数量> wp_nonce_url (actionurl美元,大敌;行动,美元,美元name );//,例如:   complete_url 美元;=,wp_nonce_url (bare_url美元,大敌;& # 39;trash-post_& # 39;。美元后→ID );

其中美元bare_url(必选)为要添加nonce的url,而行动为美元为nonce定义的动作名字,可选,默认为1 .

默认情况下,生成的nonce在链接中的名字为_wpnonce,为了避免可能的冲突,在Wordpress3.6版本后,wp_nonce_url增加了可选的名字美元参数,可以让用户自己指定nonce在链接中的名字。如:

complete_url 美元;=,wp_nonce_url (bare_url美元,大敌;& # 39;trash-post_& # 39;。美元后→ID, & # 39; my_nonce& # 39;,),

<强>向表单中添加nonce

你可以能过wp_nonce_field()方法向表单中添加一个隐藏元素:

php      wp_nonce_field(,行动,美元美元的名字,,推荐人美元,美元echo )//例如,:   wp_nonce_field (, & # 39; delete-comment_& # 39; comment_id 美元;);   wp_nonce_field(,行动,美元美元的名字,,推荐人美元,美元echo )//例如,:   wp_nonce_field (, & # 39; delete-comment_& # 39; comment_id 美元;);

调用上面的方法,会生成类似下面的代码:

& lt; input 类型=癶idden", id=癬wpnonce", name=癬wpnonce",价值=https://www.yisu.com/zixun/" 796 c7766b1 "/>   

<强>单独生成一个临时的

如果你只是想要生成一个独立的nonce,可以过wp_create_nonce()方法:

wp_create_nonce (, action 美元;);//,例如:   nonce 美元;=,wp_create_nonce (, & # 39; my-action_& # 39;。美元后→ID );

同样的,美元的行动为可选参数,默认为1。上面的方法会返回类似“295 a686963”的结果。

<强>验证nonce有效性

<强>验证表单中的nonce

在管理管理界面,你可以通过check_admin_referer方法来验证Url中特定场合的有效性:

check_admin_referer(,行动,美元query_arg 美元;);

下面是一个例子演示如何在插件中使用check_admin_referer验证nonce:

& lt; form 方法=皃ost"比;   ,,& lt; !——, some  inputs  here ——比;   ,,& lt; ? php  wp_nonce_field (, & # 39; name_of_my_action& # 39;,, & # 39; name_of_nonce_field& # 39;,),, ?比;   & lt;/form>

验证方法:

check_admin_referer (, & # 39; name_of_my_action& # 39;,, & # 39; name_of_nonce_field& # 39;,),

<强>验证Ajax中的nonce

如果要检查Ajax请求中的特定场合的有效性,可以使用check_ajax_referer()方法:

check_ajax_referer(,行动,美元query_arg美元,美元die )

死指美元定如果nonce美元无效,是否结束脚本执行。(默认为True)

一个简单使用check_ajax_referer的例子:

& lt; php ?//Set  Your 现时标志   $ ajax_nonce =, wp_create_nonce (,“my-special-string",);   比;   ,   & lt; script 类型=拔谋?javascript"比;   jQuery(文档)时函数($){   ,,,var  data =, {   ,,,,,,,行动:,& # 39;my_action& # 39;   ,,,,,,,安全:,& # 39;& lt; ? php  echo  ajax_nonce美元;,?祝辞& # 39;   ,,,,,,,my_string:, & # 39; Hello 世界! & # 39;   ,,,};   ,,,$ . post (ajaxurl、,数据,函数(反应),{   ,,,,,,,警报(“回应:,“,+,响应);   ,,,});   });   & lt;/script>

在向后通过下面的代码进行验证:

add_action (, & # 39; wp_ajax_my_action& # 39;,, & # 39; my_action_function& # 39;,);   function  my_action_function (), {   ,,,check_ajax_referer (, & # 39; my-special-string& # 39;,, & # 39;安全# 39;,);   ,,,echo  sanitize_text_field (, $ _POST [& # 39; my_string& # 39;],);   ,,,wp_die ();   }

<>强验证独立生成的nonce

wp_verify_nonce(,目前美元,美元action );

以上是“WordPress中的nonce有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

WordPress中的Nonce有什么用