Я создаю веб-приложение Google App Engine с задней частью Java, которая в значительной степени зависит от JavaScript/JQuery в браузере (вы можете увидеть его here).Что такое простой безопасный способ аутентификации пользователей через AJAX?
Я хочу реализовать механизм аутентификации пользователя, который также будет полагаться на AJAX (то есть они смогут зарегистрироваться и войти без обновления страницы).
Я не хочу полагаться на аутентификацию Google, потому что я обнаружил, что многие люди неохотно отказываются от своих адресов электронной почты GMail, но я хотел бы поддерживать аутентификацию через Google/Facebook/Twitter и т. Д. В будущем ,
Мне нравится простота подхода Reddit к аутентификации пользователей.
Я обеспокоен тем, что, поскольку люди не будут использовать мое приложение через HTTPS, я не хочу отправлять пароль в текстовом виде через HTTP. Я также предпочел бы полагаться на какой-то секретный токен (возможно, хэш пароля и некоторую предоставленную сервером «соль»), которую можно было бы перехватить и подделать.
В то же время я не хочу прикладывать огромные усилия для внедрения механизма аутентификации.
Есть ли подход, который дает мне простоту, которую я хочу, но которая безопасна через HTTP?
Редактировать: Я только понял, что Google App Engine поддерживает HTTPS, но только если вы подключаетесь через URL * .appspot.com для своего сайта. К сожалению, вы не можете делать AJAX-вызовы на это из-за ограничений межсайтового скриптинга - хотя я думаю, что это возможно с JSONP.
Итак, используя JSONP + HTTPS + *. Appspot.com лучший подход здесь?
Спасибо за ответ, но я боюсь, что разоблачение домена appspot.com не вариант, это слишком уродливо. Я не возражаю против того, видят ли пользователи, что сайт защищен. Например, Reddit отправляет регистрационную информацию через HTTPS, но пользователь ее не видит. Я не думаю, что есть доказательства того, что принятие Reddit было ограничено отсутствием * видимого * использования HTTPS. – sanity
О, я не уверен, что могу согласиться с тем, что вы * должны использовать HTTPS для безопасной связи через HTTP, так как вы всегда можете выполнять криптование вручную в JavaScript и на сервере. Конечно, вы все еще уязвимы для MITM с первоначальной загрузкой кода JavaScript, но меня больше беспокоит Ева, чем Мэллори. – sanity
Если вы не хотите, чтобы они отображали https, и вам не нужно сохранять безопасные куки, тогда jsonp + https to appspot.com должен работать нормально. Возможно, вы могли бы реализовать свой собственный ssl с javascript, но вы упомянули, что хотите избежать повторного использования колеса. И ... зачем беспокоиться, если в любом случае он будет уязвим для MITM? Если кто-то заботится достаточно, чтобы подслушивать, кто-то в конечном итоге позаботится о том, чтобы создать MITM. –