wordpress中使用Nonce防止网站受到CSRF攻击

使用Nonce(number used once)是防止WordPress主题或者插件受到CSRF (cross-site request forgery) 攻击最好的方法,WordPress Nonce 通过提供一个随机数,来实现在数据请求
(比如,在后台保存插件选项,AJAS 请求,执行其他操作等等)的时候防止未授权的请求。

使用流程

1、首先使用一个唯一的标示符生成 nonce
2、将生成的 nonce 和链接或者表单中的其他数据一起传递给脚本
3、在做其他事情之前验证 nonce

首先可以使用 wp_create_nonce() 函数创建 nonce

$nonce= wp_create_nonce(‘xxzhuti’);
然后将生成 $nonce 的值作为参数传递给请求中,如:

  1. <a href="admin.php?page=xxzhuti&_wpnonce=<?php echo $nonce ?>">

最后在执行其他动作的时候,使用 wp_verify_nonce() 函数验证下 nonce。

  1. $nonce = $_REQUEST['_wpnonce'];
  2. if (!wp_verify_nonce($nonce, 'xxzhuti') ) {
  3. wp_die("非法操作");
  4. }

这种方式是用的最多的一种,当然wordpress还帮我们封装了一下nonce的函数,比如wp_nonce_field(),可以直接生成隐藏表单。

posted on 2023-05-11 23:16  alleyonine  阅读(88)  评论(0编辑  收藏  举报

导航