Защита сторонних библиотек в веб-приложениях - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть веб-приложение, в котором есть страница входа.

В исходном коде (в частности, в <head>) я вижу используемые сторонние библиотеки javascript и путь к этой библиотеке, иногдаверсия библиотеки.

Я даже могу получить доступ к коду этих библиотек без аутентификации.

Это угроза безопасности?

Например:

<script type="text/javascript" src="/****/js/ui/js/jquery-ui-1.2.2.custom.min.js"></script>
<script type="text/javascript" src="/*****/dwr/interface/AjaxService.js"></script>

Если да, как его смягчить?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Да, у такого способа есть некоторые проблемы.

Злоумышленник может использовать сервер lib и предоставить вам измененный код библиотеки.

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

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

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

(он может перенаправить пользователя на свой хост вместо вашего, когда пользователь разрешает ваш адрес).

Так что лучше иметь html + js в 1 файле без перекрестной ссылки, чтобы быть более безопасным.

Этого можно достичь с помощью комплектации веб-пакетов.

Так что злоумышленник может только пойти на компромиссвсе приложение, а не 1 библиотека, это может быть сложнее.

РЕДАКТИРОВАТЬ

(Однако вариант иметь только 1 файл подходит только для небольшого проекта. Для более крупного проекта вы должны использовать ссылки для исполнения иесть немного больше риска.)

И вы можете проверить свой код (на сервере или в package.json), используя snyk , который является базой данных с открытым исходным кодом.уязвимостей.

РЕДАКТИРОВАТЬ

Еще один способ защиты - использование CSP заголовков.Они позволяют загружать контент какого-либо формата (стили, сценарии, изображения и т. Д.), Используя только определенный список источников.Это может предотвратить некоторые виды XSS .Настоятельно рекомендуется всегда использовать все типы заголовков CSP.Однако риск остается всегда: надежный источник может быть скомпрометирован, даже DNS может быть скомпрометирован.

0 голосов
/ 21 ноября 2018

Да, существует две угрозы, которые необходимо устранить:

  • Во-первых, аутентичность библиотеки.Это может быть достигнуто с помощью SRI, который является способом проверки подписи библиотеки - см. Этот замечательный пост Скотта Хелме.
  • Во-вторых, вы хотите проверить саму библиотеку на наличие известных уязвимостей.Я не уверен, как это можно сделать, когда вы добавляете библиотеки таким способом - но есть инструменты, которые вы можете использовать, например, Snyk для проверки и проверки наличия в библиотеке известных проблем безопасности.Например, здесь Результаты Snyk для используемой вами версии jquery.См. здесь , чтобы узнать больше об этой проблеме.

Надеялся, что это поможет вам:)

...