Может ли вход на стороне клиента быть безопасным? - PullRequest
0 голосов
/ 26 сентября 2018

Может ли вход в систему на стороне клиента на какую-либо страницу, например, example.html, быть безопасным с помощью хеширования и т. Д.?Я спрашиваю в основном из любопытства, но могут быть некоторые варианты использования таких вещей, как CMS для GitHub Pages или любого произвольного безсерверного приложения, которое находится внутри браузера, но нуждается в способе аутентификации пользователя.

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

Я думал о том, чтобы сохранить cookie с хэшем пароля и отображать только те сайты, гдевход в систему не требуется.Если нужно, просто покажите пустым.Опять же, JS можно просто удалить, и это бесполезно.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Но поскольку какой-то чувак с плохими намерениями может просто удалить ваш JavaScript, это будет бесполезно, поскольку аутентификацию можно просто обойти

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

Чтобы исправить это, вам потребуется хранить скрытую информацию на сервере, где ему требуются определенные учетные данные дляполучить доступ к нему.

Самый простой способ обойти это без размещения собственного сервера (AFAIK) - это Аутентификация Firebase .Поместите свои скрытые вещи в Firebase и используйте их аутентификацию (Войти через Google).

0 голосов
/ 26 сентября 2018

Здорово, если вы знаете , кто является (аутентификация), но в конечном итоге вы хотите выборочно запретить или разрешить доступ к определенной информации ( авторизация ).Если вы делаете авторизацию на стороне клиента, сервер должен будет разглашать всю информацию клиенту, и клиент выборочно решает, какую информацию показывать или скрывать.Хорошо, но информация уже есть на клиенте, и нет никакой технической возможности предотвратить доступ пользователя к ней, даже если она «за кадром».

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

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