Обработка истории кросс-сайтов (Checkmarx)

Кто-нибудь знает, как исправить уязвимость Checkmarx - манипулирование историей между сайтами для приложений на основе Java? Вот описание, предоставленное сканированием Checkmarx: «метод может привести к утечке условных значений на стороне сервера, позволяя отслеживать пользователей с другого веб-сайта. Это может представлять собой нарушение конфиденциальности».

Вот соответствующий код:

if(user is logged in) {
     response.sendRedirect(url);
} else {
     response.sendRedirect(url)
}

Погуглив, я нашел документацию Checkmarx, в которой предлагается добавить случайное число к URL-адресу перенаправления. Вот ссылка на документ: https://www.checkmarx.com/wp-content/uploads/2012/07/XSHM-Cross-site-history-manipulation.pdf

Например:

If ( !isAuthenticated)
  Redirect(„Login.aspx?r=‟ + Random())

Я попробовал этот подход, но сканирование Checkmarx по-прежнему показывает ту же уязвимость. Не знаю, почему.


person apandey    schedule 20.06.2018    source источник


Ответы (2)


XSHM может быть CWE-203 (http://cwe.mitre.org/data/definitions/203.html) из документации CX.

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

person SPoint    schedule 20.09.2018

Checkmarx проверяет, включает ли ваш URL-адрес перенаправления случайное значение. Вот несколько случайных методов, проверяемых Java/Cx/General/Find_Cross_Site_History_Manipulation_Random:

  1. Random.Next
  2. Math.random
  3. Randomizer.*
  4. Random.nextBytes
person Happy Young    schedule 07.06.2021