Есть ли достаточно безопасный способ аутентификации домашней страницы с помощью JavaScript? - PullRequest
0 голосов
/ 16 июля 2010

Есть ли способ аутентификации домашней страницы с использованием JavaScript?Я знаю несколько способов, но их очень легко «взломать», потому что имя пользователя и пароли хранятся в самом скрипте - как массивы.

Ребята, знаете ли вы какие-нибудь хорошие способы аутентификации только на одной подстранице?или два?

Ответы [ 5 ]

8 голосов
/ 16 июля 2010

Нет, абсолютно невозможно аутентифицировать пользователя, используя чистый JavaScript.

JavaScript выполняется на стороне клиента и, таким образом, полностью и легко манипулируется.

Аутентификация всегда должна выполняться на стороне сервера. JavaScript можно использовать для отправки учетных данных на сервер, но никогда не проверять эти учетные данные.

1 голос
/ 16 июля 2010

О, да, есть безопасное решение.Это называется «техника вызова / ответа».Это работает так:

  • сервер отправляет клиенту запрос (некоторая случайная строка)
  • клиент присоединяет к полученному паролю пароль (из пользовательского ввода) и создает хэш этой комбинации *Сервер 1006 *
  • делает то же самое (вызов + пароль от БД) и проверяет равенство
    • , если все в порядке, сервер регистрирует пользователя на сайте

Безопасность достигается тем, что сервер отправляет каждый вызов только один раз!Если кто-то фиксирует ответ клиента, он не адаптируется, потому что сервер никогда не отправит этот вызов снова.

0 голосов
/ 16 июля 2010

Это, безусловно, возможно: вы можете зашифровать веб-страницу и использовать javascript для ее расшифровки.Хотя это редко имеет смысл делать.

0 голосов
/ 16 июля 2010

Это невозможно.Любые данные, отправленные клиенту в несанкционированном сеансе, должны считаться общедоступными.Любые конфиденциальные данные (например, пароли), отправленные клиенту в несанкционированном сеансе, должны считаться скомпрометированными.Любые данные, полученные от клиента, следует считать ненадежными.

Вы можете доверять только серверу.

Конечно, вы можете написать свой код на стороне сервера в JavaScript, используя nodeJS

0 голосов
/ 16 июля 2010

До тех пор, пока окончательное решение о том, будет ли пользователь видеть какой-либо контент, будет принято на клиенте, его будет довольно легко взломать.

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

...