Questions tagged «nonce»

2
wp_verify_nonce与check_admin_referer
有什么区别,我应该使用哪一个? 我知道wp_verify_nonce会检查时间限制,而我认为check_admin_referer会调用wp_verify_nonce并检查管理url段,但是我对应该使用哪个以及何时使用感到有些困惑。 感谢您的澄清。
21 admin  security  nonce 


1
随机数验证如何工作?
我可以看到wp_nonce_field在隐藏字段中生成一个值。 <input type="hidden" id="message-send" name="message-send" value="cabfd9e42d" /> 但是据我所知,wp_verify_nonce没有使用该值,但我可能是错的。 看起来它正在使用会话令牌进行验证。 $expected = substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce'), -12, 10 ); if ( hash_equals( $expected, $nonce ) ) { return 1; } 那么在隐藏字段中具有value属性有什么意义呢?

2
我可以将同一随机数用于同一页面上的多个请求吗?
还是这打破了随机数的目的?我对这种随机数不甚了解。:) 例如,在页面加载或单击某些内容时运行的两个ajax请求上: $.ajax({ type: 'post', url: 'admin-ajax.php', data: { action: 'foo', _ajax_nonce: '<?php echo $nonce; ?>' } }); $.ajax({ type: 'post', url: 'admin-ajax.php', data: { action: 'foo2', _ajax_nonce: '<?php echo $nonce; ?>' } });
13 php  ajax  nonce 

2
随机数没有用吗?
这可能是一个菜鸟问题,但请听我说-使用Nonce来保护它免受诸如scrappers(phpcurl scrappers等)之类的攻击的意义吗?但是我的Nonce像这样在文档的头部打印出来: /* <![CDATA[ */ var nc_ajax_getpost = { ...stuff... getpostNonce: "8a3318a44c" }; /* ]]> */ 因此,如果我要构建一个快速的抓取程序,我只会从该页面上获取现时值,然后在我的POST中使用它...使使用Nonce的整个过程变得毫无用处... 我在这里想念什么?
11 security  nonce 

2
如何为每个Ajax请求获得唯一的随机数?
我已经看到了一些有关让Wordpress为随后的Ajax请求重新生成唯一随机数的讨论,但是对于我一生,我实际上无法让Wordpress做到这一点–每当我请求我认为应该是新的东西时随机数,我从Wordpress得到了相同的随机数。我了解WP的nonce_life的概念,甚至将其设置为其他名称,但这对我没有帮助。 我不会通过本地化在标题的JS对象中生成随机数,而是在显示页面上生成。我可以让我的页面处理Ajax请求,但是当我从回调中的WP请求新的随机数时,我又得到了相同的随机数,而且我不知道自己在做什么错...最终,我想扩展此功能,以便页面上可以有多个项目,每个项目都具有添加/删除的功能-因此我需要一种解决方案,该解决方案将允许一个页面中的多个后续Ajax请求。 (我应该说我已经将所有这些功能都放入了插件中,因此前端的“显示页面”实际上是该插件附带的功能...) functions.php:本地化,但是我不在这里创建一个随机数 wp_localize_script('myjs', 'ajaxVars', array('ajaxurl' => 'admin-ajax.php'))); 调用JS: $("#myelement").click(function(e) { e.preventDefault(); post_id = $(this).data("data-post-id"); user_id = $(this).data("data-user-id"); nonce = $(this).data("data-nonce"); $.ajax({ type: "POST", dataType: "json", url: ajaxVars.ajaxurl, data: { action: "myfaves", post_id: post_id, user_id: user_id, nonce: nonce }, success: function(response) { if(response.type == "success") { nonce = response.newNonce; …
11 ajax  nonce 

3
从REST API检索到的随机数无效,并且与wp_localize_script中生成的随机数不同
对于那些来自Google的应用程序:除非您真的知道自己在做什么,否则您可能不应该从REST API中获取现时信息。REST API的基于Cookie的身份验证仅适用于插件和主题。对于单页应用程序,您可能应该使用OAuth。 之所以存在这个问题,是因为文档尚不清楚/尚不清楚在构建单页应用程序时应如何进行真正的身份验证,JWT并不真正适用于Web应用程序,并且比基于cookie的身份验证更难以实现OAuth。 该手册中有一个有关Backbone JavaScript客户端如何处理随机数的示例,如果我按照该示例进行操作,则会得到一个随机数,该内置数可以被/ wp / v2 / posts等端点接受。 \wp_localize_script("client-js", "theme", [ 'nonce' => wp_create_nonce('wp_rest'), 'user' => get_current_user_id(), ]); 但是,使用Backbone和主题都是不可能的,因此我编写了以下插件: <?php /* Plugin Name: Nonce Endpoint */ add_action('rest_api_init', function () { $user = get_current_user_id(); register_rest_route('nonce/v1', 'get', [ 'methods' => 'GET', 'callback' => function () use ($user) { return …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.