Какие изменения необходимы для интеграции CSRF Guard в Angular JS-интерфейс - PullRequest
0 голосов
/ 16 октября 2019

Я поддерживаю веб-приложение (содержит интерфейсный портал Angular JS и приложение внутреннего сервера на основе Java). Версия Angular - 1.2.9 (была разработана другой группой).

В настоящее время приложение имеет уязвимость для атаки подделки межсайтовых запросов (обнаруживается с помощью инструмента анализа безопасности). Я пытаюсь использовать библиотеку «CSRF Guard» (версия 3.0) для устранения уязвимости, однако я не могу заставить ее работать.

Изначально я надеялся, что интегрировать «CSRF Guard» будет безболезненнос этим приложением, но это кажется немного сложнее, чем я ожидал.

После добавления «CSRF Guard», когда я пытаюсь выполнить команду POST, которая имеет уязвимость, я вижу следующее в журналах:

APPLICATION_NAME |[Ср. 16 октября 11:19:07 UTC 2019] [Ошибка] предотвращение потенциальной атаки подделки межсайтовых запросов (CSRF) (USERNAME, ip: 172.16.0.1, метод:% request_method%, uri: / APPLICATION_PATH1 / PATH2, ошибка:требуемый токен отсутствует в запросе)

Итак, похоже, что токен CSRF Guard не включен в запрос. Я настроил файл web.xml на основе инструкций:

https://www.owasp.org/index.php/CSRFGuard_3_Installation https://www.owasp.org/index.php/CSRFGuard_3_Token_Injection

Мой вопрос: какие изменения кода необходимо выполнить в приложении (или в HTML, или в JavaScript), чтобы убедиться, что токен включен в запрос.

Я видел, что кто-то предложил (в Как установить токен CSRF на угловой странице - OWASP CSRFGuard 3.0 ), чтометод app.config должен выглядеть следующим образом:

var app = angular.module('myapp', []);

app.config(function($httpProvider) {
  $httpProvider.defaults.xsrfCookieName = 'XSRF-TOKEN';
  $httpProvider.defaults.xsrfHeaderName = 'X-XSRF-TOKEN';
});

В настоящее время наш метод app.config имеет следующую подпись:

app.config(function($routeProvider) {

Должен ли я добавить $ httpProvider в качестве дополнительного аргументав этот метод?

...