Какой самый простой безопасный способ аутентификации пользователей через AJAX? - PullRequest
11 голосов
/ 02 февраля 2012

Я создаю веб-приложение Google App Engine с серверной частью Java, которое в значительной степени зависит от JavaScript / JQuery в браузере (вы можете увидеть его здесь ).

Я хочу реализовать механизм аутентификации пользователей, который также будет опираться на AJAX (то есть они смогут регистрироваться и входить в систему без обновления страницы).

Я не хочу полагаться на аутентификацию Google, потому что яЯ обнаружил, что многие люди не хотят отказываться от своих адресов электронной почты GMail, но я хотел бы в будущем поддерживать аутентификацию через Google / Facebook / Twitter и т. д.

Мне нравится простота подхода Reddit к пользователюАутентификация.

Меня беспокоит то, что, поскольку люди не будут использовать мое приложение по HTTPS, я не хочу отправлять пароль в виде открытого текста по HTTP.Я также предпочел бы полагаться на какой-то секретный токен (возможно, хэш пароля и некоторую «соль», предоставляемую сервером), который можно перехватить и подделать.

В то же время я неНе нужно прилагать огромных усилий для реализации механизма аутентификации.

Есть ли подход, который дает мне простоту, которую я хочу, и которая безопасна по HTTP?

edit: Я только что понял, что Google App Engine поддерживает HTTPS, но только если вы подключаетесь через URL-адрес * .appspot.com для вашего сайта.К сожалению, вы не можете делать вызовы AJAX для этого из-за ограничений межсайтового скриптинга - хотя я предполагаю, что это возможно с JSONP.

Так что использование JSONP + HTTPS + *. Appspot.com лучший подход здесь

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

Вы должны использовать https для безопасного общения через http.Без него невозможно обеспечить безопасную связь из браузера.

Если вы используете JSONP + https в домене appspot, ваши пользователи не увидят, что ваш сайт защищен, и вы не сможете сохранитькуки в безопасном режиме.Для нас единственным выходом было выставить уродливый домен appspot.com напрямую нашим клиентам.Google уже давно говорит, что SSL на пользовательских доменах появится, но даты нет.

Редактирование для PS: если вам не нужно, чтобы ваши клиенты видели зеленый https, и вам не нужночтобы сохранить файлы cookie безопасным способом (может быть, вместо этого сессионным ключом с защитой от неизвестности?), jsonp + https to * .appspot.com звучит как умное решение, которое будет работать.

0 голосов
/ 02 февраля 2012

Это действительно хороший вопрос, и ему действительно нужны глубокие знания в области криптографии. Эта статья мне показалась интересной пару месяцев назад. У них есть предложенное решение, использующее CRAM-MD5 аутентификацию по запросу-ответу.Надеюсь, что это может быть полезно.

http://en.wikipedia.org/wiki/CRAM-MD5

http://blog.stochastictechnologies.com/secure-authentication-over-http

С уважением.

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