Защищает ли HTTPS от CSRF-атак? - PullRequest
13 голосов
/ 04 декабря 2011

Я пишу в основном веб-приложение на основе ajax и смотрю, как защитить пользователя от CSRF-атак. Я планирую запустить страницы приложения, где пользователь вошел в систему, чтобы выполнять свою работу в режиме HTTPS.

Работает ли страница на HTTPS для защиты от CSRF-атак?

Ответы [ 3 ]

19 голосов
/ 04 декабря 2011

Нет, запуск страницы по HTTPS не защищает ее от CSRF. Тот факт, что связь между браузером и сервером зашифрована, не имеет отношения к CSRF.

Предлагаю прочитать руководство OWASP по предотвращению CSRF .

2 голосов
/ 04 декабря 2011

Общее золотое правило будет следующим:

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

Несколько конкретных правил, помимо упомянутой статьи OWASP:

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

    http://msdn.microsoft.com/en-us/library/ms954638.aspx

  2. , даже если инфраструктураобеспечивает некоторый контроль над достоверностью запроса (ASP.NET viewstate), проверьте еще раз, авторизован ли пользователь для передачи набора входящих параметров.

1 голос
/ 04 декабря 2011

Лучшее возможное решение - включить секретные токены - для идентификации пользователя - в форму отправки на сервер.Для получения дополнительной информации см. Следующие ссылки.

http://en.wikipedia.org/wiki/Cross-site_request_forgery

https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

http://www.codinghorror.com/blog/2008/10/preventing-csrf-and-xsrf-attacks.html

http://seclab.stanford.edu/websec/csrf/

...