Скрытие React Src от пользователя до входа в систему - PullRequest
0 голосов
/ 08 февраля 2019

Итак, я заметил, когда я запустил экран входа в производственную сборку моего приложения реакции из create-реагировать на приложение, что весь исходный код приложения был доступен в папке static / js.По сути, код ничем не отличается от кода в моем идеале на рабочей сборке.

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

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Чтобы избежать отображения вашего исходного кода в производственной сборке, попробуйте собрать приложение с помощью

GENERATE_SOURCEMAP=false npm run build
0 голосов
/ 08 февраля 2019

Файлы js из производственной сборки должны быть свернуты, что бы выглядело lot иначе, чем в вашей IDE.Я предполагаю, что то, что выглядит «одинаково», смотрит на источник с помощью инструментов разработчика.Решением для этого является не развертывание файлов исходной карты (* .js.map).Это файлы, которые позволяют инструментам разработчика преобразовывать свернутый код обратно в его первоначальный вид.

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

Если вам нужно предотвратитьвидя любую версию исходного кода для людей, которые не вошли в систему, я бы порекомендовал создать ваше приложение как два приложения: одно, которое содержит только часть для входа, а другое - для остальных.Разделение кода в одном приложении не поможет (по крайней мере, без использования решения, которое будет немного более сложным в управлении, чем вариант с двумя приложениями), потому что оно просто делает процесс загрузки ленивым и все еще довольно привлекательнымкому-то легко определить, какие есть другие файлы, и загрузить их.Однако даже разделение этого на два приложения помогает, только если вы размещаете второе приложение по-другому.Для этого потребуется защита на стороне сервера, которая обслуживает файлы JavaScript для второго приложения только для пользователя, вошедшего в систему. Это означает, что для другого приложения нужно использовать другой поддомен или, по крайней мере, другой каталог на сервере, на которомЗащита встроена. Как вы реализуете эту защиту, зависит от деталей вашего подхода к аутентификации и технологического стека, используемого на сервере.Скорее всего, это означает использование файла cookie, установленного процессом входа в систему, а затем отправку файлов JS для второго приложения чем-то, что проверяет файл cookie перед тем, как файлы JS будут переданы в браузер.

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