Реагируйте на проблемы безопасности: ограниченные страницы в приложении - PullRequest
0 голосов
/ 10 мая 2018

Я относительно новичок в веб-разработке, а также использую React.js и хотел бы дважды проверить некоторые проблемы безопасности:

Аутентификация

Предполагается, что часть моего приложения не должна быть доступна для неаутентифицированных пользователей, и я реализую это, вызывая, например, AWS Cognito и условный рендер:

{Auth ? <userPanel/> : <smthElse/>}

Есть ли возможности для манипулирования на стороне клиента, т.е. есть ли способ получить доступ к компоненту userPanel, несмотря на то, что он был отклонен Cognito?

Авторизация

Кроме того, если бы у меня были разные группы пользователей (пользователь, администратор и т. Д.), Каким был бы безопасный способ ограничить различные части приложения? Некоторые варианты, которые я придумала до сих пор:

  1. То же, что и выше, с прямым вызовом Cognito API и условным рендерингом
  2. Может быть, есть способ сделать состояние Redux защищенным от перегрева и использовать его в сочетании с частными маршрутами реакции-маршрутизатора-дом *
  3. Использование частных маршрутов в сочетании с прямыми вызовами Cognito API

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Ничто на стороне клиента не является доказательством взлома. Я думаю, что ваше решение в порядке, если вы выполняете также и внутреннюю проверку перед отображением страницы.

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

0 голосов
/ 10 мая 2018

Аутентификация / авторизация на стороне клиента невозможна, и ее следует избегать.

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

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