V5320. OWASP. Use of potentially tainted data in configuration may lead to security issues.
Анализатор обнаружил, что для конфигурации системы или базы данных используются данные из внешнего источника. Это может привести к возникновению дефекта безопасности.
Уязвимости такого типа относятся к категории рисков OWASP Top 10 Application Security Risks 2021:
Приведем пример:
public static class DataBaseController {
private String user;
private String password;
private void connectFromRequest(HttpServletRequest request) {
String dbName = request.getParameter("db");
String dbUrl = "jdbc:mysql://localhost:3306/" + dbName +
"?useUnicode=true&characterEncoding=utf8";
Connection db = DriverManager.getConnection(dbUrl, user, password);
}
}
В этом примере формируется строка подключения к БД. В переменную dbUrl
записываются данные, не прошедшие никакой валидации, благодаря чему злоумышленник может передать любое название базы данных. Подобным образом он может получить информацию, доступ к которой не был предусмотрен.
Для защиты от подобных атак стоить производить валидацию входных данных.
Пример корректного формирования строки подключения:
public static class SafeDataBaseController {
private final List<String> WHITE_LIST = new ArrayList<>();
private String user;
private String password;
private void safeConnectFromRequest(HttpServletRequest request) {
String db = request.getParameter("db");
if (!WHITE_LIST.contains(db)) {
return;
}
String dbUrl = "jdbc:mysql://localhost:3306/" + db +
"?useUnicode=true&characterEncoding=utf8";
Connection db = DriverManager.getConnection(dbUrl, user, password);
}
}
В данном случае проверяется, что база данных db
содержится в списке WHITE_LIST
. Таким образом, пользователь будет иметь доступ лишь к определённому перечню баз данных, что не позволит получить приватную информацию.
Выявляемые диагностикой ошибки классифицируются согласно ГОСТ Р 71207–2024 как критические и относятся к типу: Ошибки непроверенного использования чувствительных данных (ввода пользователя, файлов, сети и пр.). |
Данная диагностика классифицируется как: