Нужен ли мне CSRF-токен для jQuery .ajax()?

Итак, у меня есть базовый метод .ajax() POST к PHP-файлу.

Какие меры безопасности мне нужны?

В нескольких сообщениях упоминалось использование скрытого поля ввода MD5, которое отправляется через AJAX и проверяется в PHP-файле. Достаточно ли это хороший метод?

28
задан Nathan Waters 1 February 2012 в 02:25
поделиться

2 ответа

С точки зрения подделки запроса, не имеет значения, как клиент отправляет запрос, важно, как он был получен. Для сообщения ajax применяются те же правила CSRF, что и для любого другого типа сообщений.

Я рекомендую прочитать листок по профилактике CSRF . Использование секретного токена для каждого пользователя является наиболее распространенной формой защиты.

2
ответ дан 28 November 2019 в 03:32
поделиться

Вот простая демонстрация, которую вы можете попробовать с помощью django:

На странице HTML

{%block content%}
<form id="userForm">
{%csrf_token%}
  <input type="text" id="username" placeholder="User Name">
  <input type="password" id="password" placeholder="Password">
</form>
{%endblock%}

Код Java-Script

%(document).on('submit','#userForm',function(e){
   e.preventDefault();

 $.ajax({

    type = 'POST',

    url:'path/to/url',

    data:{
     username:$('#username').val(),
     password:$('#password').val(),
     csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken').val()
    },

   success:function(data){
       alert('Successfull');
   }
  });

});
0
ответ дан 28 November 2019 в 03:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: