Как проверить, были ли заголовки запроса добавлены веб-приложением Specifi c - PullRequest
0 голосов
/ 17 января 2020

В настоящее время я работаю над проектом, который требует высокий уровень безопасности . Из-за некоторых недавних изменений требований мы добавили несколько специальных заголовков к каждому запросу, используя интерфейсный http-перехватчик (в противном случае это могло бы стать изменением c в интерфейсных модулях), и они очень важны для системы.

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

Экспозиция этих значений заголовка не представляет большой проблемы. Но модификация.

.

.

Мое решение:

1) Генерация пары ключей RSA каждый Модуль времени инициализирует и отправляет ключ publi c в бэкэнд-сервис с уникальным идентификатором для этой вкладки.

2) Сохраните закрытый ключ в сервисе в моем интерфейсе и создайте publi c функция для генерации подписи для данного ввода.

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

4) Когда каждый запрос попадает на шлюз API, он проверяет подпись, используя ключ publi c, сохраненный на этапе инициализации приложения.

.

Существуют ли угрозы безопасности для мое решение выше. Если есть лучший способ решения вышеуказанной проблемы, предложения горячо приветствуются:)

1 Ответ

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

Рассмотрите возможность использования JWT для отправки этих заголовков ... Вы можете использовать подпись симметри c (например, HS256) или асимметрию c (например: RS256) в зависимости от того, являетесь ли вы владельцем как внешнего интерфейса, так и внутреннего интерфейса или внешний интерфейс - publi c ...

Для получения более подробной информации о создании JWT и его проверке, пожалуйста, обратитесь к https://jwt.io/

. При условии, что это идея, которую я получил ... Для точной работы, вы не предоставили, будь то веб-API или веб-приложения, и т. д. c.

...