Можно мне разъяснить про безопасность AJAX запросов. Если у меня работает такой код:
$.ajax({
type: 'POST',
url: "ajax.php",
dataType: 'text',
data: data,
success: function(result) {
$('#Res').html(result);
}
Может ли злоумышленник отправить POST-запрос напрямую и изменить таким образом настройку в системе? В каком случае он это может сделать? Как это предотвратить? Какие-то секретные данные я не могу очевидно передавать, ведь их можно перехватить? Знаю про проверку заголовка на ajax это или нет, но это не надёжный метод
Чтобы кто то изменил конфиги, и подобные "скрытые" вещи, то нужно делать как минимум авторизацию, и ставить "юзерам" группы. И если это такая группа, то изменять, если пользователи - то нет прав... По такому типу работает.
Ajax (Asynchronous Javascript And Xml), это аббривеатура означающая технологию отправки запроса на веб-сервер без перезагрузки страницы. В корне этой технологии лежит JavaScript-объект XMLHttpRequest, который отправляет на сервер обычный HTTP запрос, ничем не отличающийся от любого другого, выполненного по средствам любого инструмента (переходу по адресной строке браузера или утилиты CURL)
Может ли злоумышленник отправить POST-запрос напрямую и изменить таким образом настройку в системе?
Когда вы проектируете API-бекенда (т.н. серверная часть, в вашем случае ajax.php), то необходимо понимать, что обратиться к этому API может любой (в случае публичной сети, такой как интернет). Для того, что бы защитить приватную информацию (настройки, в вашем случае), вы должны организовать авторизацию пользователя.
Распространенным сценарием может считаться следующий:
Сервер должен проверять такой ключ на предмет принадлежности конкретному авторизованному пользователю и разрешать/запрещать обрабатывать запрос в зависимости от результата проверки.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей