Цель: Website1 отправляет пользовательские данные Website2 через HTTP-запросы.Понимание междоменной аутентификации пользователей
Задача: Website2 гарантирует, что данные поступают с сайта 1, а не с каким-то хакером.
Примечание: Я не буду использовать HTTPS, я понимаю, что бы решить большую проблему, но сейчас GAE не поддерживает SSL для вашего собственного доменного имени: http://code.google.com/appengine/kb/general.html#httpsapps
Так что я сделал некоторые большие прогресс за счет шифрования и отправки данных между двумя сайтами, а другой - сайт, способный расшифровывать и читать данные. Я нахожусь в Google App Engine/Python/Django-нереальном, и эта страница была отличным ресурсом для получения работы pycrypto: http://code.activestate.com/recipes/576980/ Kn
Итак, мне комфортно знать, что данные пользователя зашифрованы и что вам нужно иметь ключ, чтобы прочитать его, но как веб-сайт2 знал, что запрос пришел с сайта 1? Что мешает хакеру отправлять тот же запрос еще раз, и Website2 думает, что этот хакер действительно делает что-то на Website2?
Например, не мог ли кто-то просто прослушать HTTP-запрос и записать, что зашифрованные данные отправили по линии? И тогда хакер мог выполнить свой собственный запрос с теми же значениями, что и раньше, а также хакер мог делать то же самое с сайтом2, что и Website1? По сути, хакер будет сообщать Website2, что они являются действительным пользователем входа в систему Website1.
Общая цель: Website2 сообщается пользовательским данным, которые поступают только от запросов от Website1. Любые другие запросы от хакера, использующего одни и те же зашифрованные данные Website1, отправленные на сайт2, не будут работать, если только ваш сайт1.
Не уверен, если я объясню достаточно хорошо, или если это довольно основное понимание, которого я просто не знаю, но спасибо за вашу помощь.
OpenID не решает повторные атаки _at all_ ... – bdonlan
О да, это так - вы явно не знакомы со спецификацией. –