Как защитить Javascript изменений на стороне клиента - PullRequest
0 голосов
/ 29 января 2020

Я занимаюсь разработкой приложения с использованием базы данных firestore и столкнулся с определенными проблемами безопасности. Например, приложение добавляет дату создания и записи при каждой отправке формы и проверяет, не опоздала ли дата записи, пользователь должен заплатить штраф. Поскольку код javascript видим и может быть изменен на стороне клиента, пользователь может изменить дату записи и обойти штраф.

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

Ответы [ 3 ]

0 голосов
/ 29 января 2020

Действительно, для того, чтобы вы имели полный контроль над системой, она должна быть запрограммирована и разработана таким образом, чтобы она не обеспечивала «мощность» для пользователя - например, JavaScript.

Как вы упомянули, использование облачных функций будет лучшим вариантом для вас. Я бы порекомендовал вам взглянуть на Цены . Есть очень хорошие варианты, в том числе бесплатный. В случае, если вы только запускаете систему / приложение, использование бесплатного уровня может быть лучшим вариантом для вас. :)

0 голосов
/ 29 января 2020

Возможно, вы захотите взглянуть на документацию для Firebase правил безопасности на стороне сервера . Эти правила могут использоваться для проверки операций чтения и записи, которые выполняются непосредственно с клиента, и во многих случаях могут покрывать большую часть потребностей безопасности при прямом доступе от клиента.

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

0 голосов
/ 29 января 2020

Нет.

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

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