Исправить ошибку манипуляции заголовком при попытке установить cookie с помощью класса HttpHeaders - PullRequest
0 голосов
/ 12 июля 2019

В уже написанном приложении есть метод getHeaders (String cookie), который создает новый объект HttpHeader и устанавливает тип содержимого и cookie в заголовок.Код ниже:

private HttpHeaders getHeaders(String cartIdCookies) {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        headers.add(HttpHeaders.COOKIE, cartIdCookies);
        headers.add(HttpHeaders.HOST, "www.karan.com");
        return headers;
    }

Этот метод используется для генерации requestEntity, а затем используется в restTemplate exchange () для получения httpresponse.Код ниже:

    HttpHeaders headers = getHeaders(postCookies);

    HttpEntity<T> requestEntity = new HttpEntity<>(requestModel, headers);

    response = restTemplate.exchange(url, method, requestEntity, JsonNode.class);

Сканирование Fortify показывает проблему, связанную с манипулированием заголовком именно на этой строке

headers.add(HttpHeaders.COOKIE, cartIdCookies);

Если я комментирую эту строку и запускаю, она не выдаетвопрос.Но эта строка нужна в заголовке, так как они добавляют много информации в cartIdCookies и добавляются в виде cookie.

Ошибка фортификации:

Метод getHeaders () в GenericRestTemplate.java включает неподтвержденные данные в заголовок ответа HTTP в строке 71. Это включает такие атаки, как отравление кэша,межсайтовый скриптинг, кража между пользователями, угон страницы, манипулирование файлами cookie или открытое перенаправление.

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

...