Есть ли хороший способ защитить вызов веб-службы ASP.Net, выполняемый через Javascript в обработчике событий щелчка кнопки HTML?
-
02-07-2019 - |
Вопрос
Цель использования прокси-сервера Javascript для веб-службы с использованием ссылки на службу с помощью Script Manager — избежать загрузки страницы.Если получаемая информация потенциально конфиденциальна, есть ли способ защитить вызов этой веб-службы, кроме использования SSL?
Решение
Если вы беспокоитесь о том, что другие люди получат доступ к вашему веб-сервису напрямую, вы можете проверить вызывающий IP-адрес и заголовок хоста и убедиться, что он соответствует ожидаемым IP-адресам.
Если вы беспокоитесь о том, что люди крадут информацию во время ее пути от сервера к клиенту, SSL — единственный выход.
Другие советы
Я бы использовал SSL, это также будет зависеть от того, насколько конфиденциальна ваша информация.
Я бы:
- Используйте SSL для подключения
- Поместите в запрос токен на основе времени и сеанса.
- Проверьте входные данные на соответствие ожидаемым диапазонам на сервере.
SSL предотвращает «человек посередине»
Токенизированные запросы проверяют, что запрос поступает из активного и проверенного сеанса в течение разумного периода времени с момента последнего действия в рамках сеанса.Это предотвращает повторную отправку устаревших запросов и проверяет, что они поступили из источника сеанса (сохраните IP-адрес, пользовательский агент и т. д. на сервере для управления сеансом).
Проверка того, что входные данные находятся в пределах ожидаемых диапазонов, подтверждает, что запрос не был подделан стороной, с которой вы разговариваете.
Хотя SSL был бы лучшим вариантом, существует ряд библиотек шифрования на стороне клиента, которые могут облегчить некоторые проблемы безопасности — см. https://github.com/jbt/js-crypto за хорошую коллекцию