Совершение безопасных звонков Ajax

Что происходит, если пользователь смотрит на мой файл JavaScript, копирует содержание функции и отправляет запрос к моему серверу с помощью Ajax? И есть ли способ правильно защитить от этого от случая?

17
задан Crescent Fresh 4 June 2010 в 06:16
поделиться

3 ответа

Способ защиты от этого не отличается от способа защиты от любого веб-запроса. Вы делаете так, что ваш сайт требует некоторой формы аутентификации (т.е.пользователи должны входить в систему) и ничего не делать, если запрос не аутентифицирован должным образом.

Обычно, когда вы делаете запрос AJAX, файлы cookie также отправляются вместе с запросом, поэтому вы должны просто иметь возможность использовать тот же метод аутентификации, который вы используете для своих обычных запросов с вашими запросами AJAX.

15
ответ дан 30 November 2019 в 13:20
поделиться

Как сообщает codeka, нет способа предотвратить составление кем-то собственного Ajax-запроса, идентичного тому, который содержится в вашем Javascript-запросе. Кросс-доменная защита не обязательно защитит вас, так как при желании они могут просто ввести Javascript в адресную строку, находясь на странице вашего сайта.

Единственная защита, которая у вас есть - это проверка ввода и параметров, предоставляемых через Ajax-запрос на стороне сервера. Ограничьте каждый PHP или Python, или любой другой сценарий ответа очень конкретной задачей, и проверяйте вводимые данные на стороне сервера. Если что-то не так, отвечайте ошибкой".

Короче говоря, нет способа помешать кому-то отправить запрос, но вы можете помешать ему сделать что-то, чего вы не хотите, чтобы он делал на вашем сервере.

9
ответ дан 30 November 2019 в 13:20
поделиться

Предполагая, что вам нужна некоторая форма аутентификации:

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

0
ответ дан 30 November 2019 в 13:20
поделиться
Другие вопросы по тегам:

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