Включить заголовок при получении фрагментов с разделением кода - PullRequest
0 голосов
/ 26 ноября 2018

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

http://nginx.org/en/docs/http/ngx_http_auth_request_module.html#auth_request

, который позволяет отправить подзапрос перед обслуживанием определенных файлов.Как я могу гарантировать, что определенные заголовки всегда отправляются как часть HTTP-запроса, когда React хочет получить необходимые фрагменты?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

У меня проблемы с пониманием того, почему вам не нужно, чтобы неаутентифицированные злоумышленники имели доступ к вашим статическим чанкам.

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

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

Что я делаю:

  • Отклонение неаутентифицированных запросов к API
  • Храните токен-клиентсторона при проверке подлинности
  • Передайте и проверьте токен на все запросы
  • Запишите токен, если он устарел, и перенаправьте на вход в систему
  • Уведомляйте, перенаправляйте пользователей, если у них нет доступа к некоторымданные или, лучше, не отображать контент, к которому у них нет доступа

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

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

В случае, если у вас есть особые потребности, вам может понадобиться написать плагин для веб-пакета.

0 голосов
/ 01 декабря 2018

о запросе обеспечения

Одним из свойств веб-пакета является то, что он может извлекать только необходимые чанки при загрузке страниц. Вы можете просто использовать как require.ensurn для запроса чанков при необходимости, поэтому в этом нет необходимости.для обеспечения определенных заголовков.

ngx_http_auth_request_module

Ngx_http_auth_request_module и подзапрос всегда используются для извлечения веб-файла на сервере. Он всегда используется как модуль проверки подлинности бэкэнда. Вот направление потока данных в ngin.

Когда вы загружаете файл, запрос на загрузку будет передан на сервер, затем сервер вернет запрос Http о переопределении в Nginx, затем Nginx найдет точный файл.

Модуль ngx_http_auth_request_module позволяетотправьте запрос на задний сервер (например, php .tomcat) и, основываясь на запросе на передачу или нет, если он пройдет, вы сможете получить файл на заднем сервере.

nginx ----- loadскорость

nginx всегда выбирает статический файл, например, index.html. Если нужно проверить разрешениедля каждого js / css каждый раз, затем извлекайте его, скорость загрузки страницы будет очень низкой.

о том, как аутентифицировать

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

  1. извлекают данные с сервера в неограниченной части с информациейдля аутентификации следующим образом:

    http: //.../api/auth? info = ...

  2. на основе информациина сервере для аутентификации и передачи другой информации, такой как type, обратно во внешний интерфейс

  3. на основе информации о типе для просмотра.

if (this.props.type === "restrict"){   
   <restrict component/>
} else {
   <non-restrict component/>
}
...