2013-05-16 2 views
0

У меня есть базовый логин (index.asp отправляет форму login.asp для проверки учетных данных), и я недавно обнаружил, что могу делать POST (XMLHTTP с классическим ASP) из другого домена в мой логин .asp.Безопасность входа в веб-приложение

Я хочу, чтобы избежать этих операций, и мой вопрос: Если я устанавливаю SSL-сертификат на своем сайте, могу ли я контролировать, какие домены могут делать POST в моем домене?

Могу ли я решить проблему с формами .NET?

Tks

ответ

0

SSL не изменится, кто может POST данные в формы (в конце концов, вы не знаете, личность компьютеров, которые отправляют данные на веб-сервер заранее, не так ли?)

Типичный способ защиты от этого для каждого запроса к index.asp:

  1. Генерировать случайное число на стороне сервера, и хранить ее в состоянии приложения на сервере.
  2. Запишите это число в поле hidden форме на форме входа
  3. Отклонить любые запросы login.asp без этого скрытого поля установлен правильно для сеанса пользователя

Теперь, это не помешает удаленные хосты программно доступ к login.asp, но это заставит их проходить через index.asp каждый раз, как если бы они были настоящим пользователем.

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

+1

См [руководство OWASP в] (https://owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet) для других способов защиты от Cross Site Request подделок (CSRF) – Michael

+0

Большого +1 @Michael для OWASP. Там есть очень сильное содержание для этой проблемы. –

Смежные вопросы