Анализатор обнаружил передачу непроверенных данных в объект, который может восприниматься как источник доверенных данных в другой части программы. Таким образом, нарушается граница доверия между недоверенным источником и компонентом, принимающим данные за доверенные.
Уязвимость такого типа относится к следующим категориям OWASP Top 10:
Рассмотрим пример:
public void configure(HttpSession session, HttpServletRequest request) {
var arg = request.getParameter("arg");
session.setAttribute("session_attribute", arg); // <=
}
В атрибут сессии как области доверенных данных кладётся аргумент, переданный в пользовательском запросе без каких-либо проверок. Опасность такого нарушения границ доверенности проявляется в зависимости от того, как в дальнейшем этот атрибут будет использован. Например, если он используется при формировании запроса в базу данных, то это может привести к SQL-инъекции.
Исправить потенциальную уязвимость можно, проверяя любые пришедшие извне параметры на их допустимость:
public Set<String> ALLOWED = ....
public void configure(HttpSession session, HttpServletRequest request) {
var arg = request.getParameter("arg");
if (ALLOWED.contains(arg)) {
session.setAttribute("session_attribute", arg);
}
}
Диагностическое правило классифицируется как:
|
Была ли полезна эта страница документации?
Мы ответим вам на:
Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок: