Предотвратите подделку запроса перекрестного сайта - Никогда Не Полагаются на SessionID, Отправленный на Ваш Сервер в Заголовке Cookie

Я читаю учебное руководство в

http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ

Это указывает

Помните - Вы никогда не должны полагаться на sessionID, отправленный на Ваш сервер в заголовке cookie; посмотрите только на sessionID, который Ваше приложение GWT отправляет явно в полезной нагрузке сообщений к Вашему серверу.

Это - использование для предотвращения http://en.wikipedia.org/wiki/Cross-site_request_forgery#Example_and_characteristics

С этой мифологией действительно ли достаточно достаточно предотвратить к вышеупомянутому нападению?

5
задан Cheok Yan Cheng 5 April 2010 в 16:40
поделиться

1 ответ

Да, этого достаточно для предотвращения подделки межсайтовых запросов.

Идентификатору сеанса в cookie нельзя доверять. Допустим, пользователь вошел в систему на mysite.com, а идентификатор сеанса находится в файле cookie. Теперь пользователь нажимает ссылку на evilsite.com. У evilsite.com есть такой код

<img src="http://mysite.com/transfermoney.jsp?amount=1000.." />

Браузер сделает запрос к mysite.com, и он также отправит cookie с идентификатором сеанса. Здесь нужно понимать, что evilsite.com не может прочитать cookie, но он все равно может выполнять свою работу.

Политика одинакового происхождения в браузере не позволяет evilsite.com считывать идентификатор сеанса, независимо от того, содержится ли он в файле cookie или встроен в страницу html. Но поскольку браузер автоматически отправляет cookie на ваш сервер , даже если ресурс был запрошен из html-кода в другом домене , у вас есть XSRF.

Чтобы предотвратить это, рекомендуется указать идентификатор сеанса в качестве параметра запроса. Если он добавлен в качестве параметра запроса, evilsite.com не может получить доступ к идентификатору и, следовательно, не может поместить его в атрибут img src.

Однако помните, что если на вашем сайте есть XSS-уязвимости, ничто не может помешать вам от XSRF. Другими словами, если у вас есть XSS-уязвимости, злоумышленник даже не позаботится о выполнении XSRF.

5
ответ дан 14 December 2019 в 19:08
поделиться
Другие вопросы по тегам:

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