Итак, у меня есть базовый метод .ajax() POST к PHP-файлу.
Какие меры безопасности мне нужны?
В нескольких сообщениях упоминалось использование скрытого поля ввода MD5, которое отправляется через AJAX и проверяется в PHP-файле. Достаточно ли это хороший метод?
С точки зрения подделки запроса, не имеет значения, как клиент отправляет запрос, важно, как он был получен. Для сообщения ajax применяются те же правила CSRF, что и для любого другого типа сообщений.
Я рекомендую прочитать листок по профилактике CSRF . Использование секретного токена для каждого пользователя является наиболее распространенной формой защиты.
Вот простая демонстрация, которую вы можете попробовать с помощью 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');
}
});
});