Обеспечение безопасности вызовов AJAX
Что произойдет, если пользователь просмотрит мой файл JavaScript, скопирует содержимое функции и отправит запрос на мой сервер с помощью AJAX? И есть ли способ правильно защитить себя от этого?
3 ответа
Способ защиты от этого ничем не отличается от способа защиты от любого веб-запроса. Вы делаете так, чтобы ваш сайт требовал некоторой формы аутентификации (т.е. пользователи должны войти в систему) и ничего не делали, если запрос не был должным образом аутентифицирован.
Как правило, когда вы делаете запрос AJAX, файлы cookie также отправляются вместе с запросом, поэтому вы просто должны иметь возможность использовать тот же метод аутентификации, который вы используете для своих обычных запросов с вашими запросами AJAX.
Что касается кодеки, нет способа помешать кому-либо создать свой собственный Ajax-запрос, который совпадает с тем, который у вас есть в вашем запросе Javascript. Междоменная защита не обязательно защитит вас там, так как они могут, если захотят, просто ввести Javascript в адресную строку для себя, находясь на странице вашего сайта.
Единственная защита, которую вы имеете, заключается в проверке входных данных и параметров, предоставленных с помощью Ajax-запроса на стороне сервера. Ограничьте каждый PHP, Python или любой другой сценарий ответа конкретной задачей и проверьте входные данные на стороне сервера. Если что-то не так, ответьте с ошибкой.
Короче говоря, невозможно запретить кому-либо отправлять запрос, но вы можете запретить ему делать то, что вы не хотите, чтобы он делал на вашем сервере.
Предполагая, что вам нужна некоторая форма аутентификации:
Я думаю, вы можете поддерживать сеанс базы данных для проверки, если запрос исходит от подлинного пользователя для поддельного. Используйте зашифрованные файлы cookie для хранения идентификатора сеанса и передайте идентификатор сеанса cookie в базу данных для проверки пользователя