Как предотвратить кэширование заголовка запроса ajax - PullRequest
0 голосов
/ 01 октября 2018

Я использую концепцию Nonce для предотвращения CSRF.Я использую wp_create_nonce () для создания одноразового номера и wp_verify_nonce () для проверки созданного одноразового номера.Я использовал $. AjaxSetup () , чтобы добавить одноразовый номер в качестве заголовка для всех запросов ajax.

Это код,

Создание одноразового номера:

global $whl_nonce_value;  
$whl_nonce_value = wp_create_nonce( 'whl_site_create_nonce' );

Добавление nonce ко всем запросам ajax с использованием $ .ajaxsetup ():

var nonce = "<?php global $whl_nonce_value; echo $whl_nonce_value; ?>";
$.ajaxSetup({
    beforeSend: function (xhr){
        xhr.setRequestHeader("whl_nonce",nonce);
    }
  });

Проверка одноразового токена:

function sample_function(){
    $headers =  apache_request_headers();
    if(wp_verify_nonce($headers["whl_nonce"],'whl_site_create_nonce')){
      //code
    }
    else{
      wp_send_json_error(array("Security Error"),403);
      die();  
    }
}

Проблема в том, что значение заголовка кэшируется.Из-за этого значение одноразового токена не проверено правильно из-за ошибки 403.Мне нужно убедиться, что значение заголовка, прикрепляемое к каждому запросу ajax, не кэшируется, чтобы оно соответствовало при проверке.

...