Можно ли вмешиваться в состояние реагирования, чтобы обойти меры безопасности? - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть два компонента.Один компонент, который пользователь должен использовать для входа в систему, и один компонент, чтобы показать некоторое содержимое.

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

Если я сделаю это, можно ли на стороне клиента вручную установить состояние, чтобы экран входа в систему обходился, а содержимое отображалось?

РЕДАКТИРОВАТЬ:Добавлен пример кода.

render () { if (this.state.authorized) { return <Content /> } else { return <Login /> } }

С учетом этого кода, учитывая, что только компонент <Login /> способен установить состояние authorized в true, верно?Можно ли на стороне клиента просто обойти это, вручную установив состояние?Например через хром реагировать на инструменты dev или что-то?

1 Ответ

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

Клиентский JavaScript не является безопасным по замыслу, то есть пользователь имеет полный контроль над сценарием, который запускается в браузере пользователя.Учитывая, что у пользователя достаточно прав доступа локально, код всегда можно прочитать и изменить.Меры безопасности, применимые к клиентскому коду, только усложняют этот процесс.

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

Конечно, можно изменить состояние компонента и показать компонент, который не должен был отображаться.Например, инструменты React dev могут использоваться для этой демонстрации для установки authorized на true:

state tampering

AПользователь в основном рушит собственный опыт работы с приложением.Пустой компонент будет показан без конфиденциальных данных, поскольку пользователь пропустил процесс аутентификации бэкэнда.

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