Sobes.tech
Back to questions
Junior — Middle
55

Какие меры необходимо предпринять для предотвращения атак типа SQL Injection в приложении?

Companies where asked
УралсибУралсиб

Answer from AI

sobes.tech AI

Для предотвращения атак типа SQL Injection в Java-приложениях необходимо:

  • Использовать подготовленные выражения (PreparedStatement) вместо конкатенации строк для формирования SQL-запросов. Это позволяет передавать параметры отдельно от кода запроса, что исключает возможность внедрения вредоносного SQL.

  • Применять ORM-фреймворки (например, Hibernate), которые автоматически обрабатывают параметры запросов и снижают риск инъекций.

  • Валидировать и фильтровать входные данные, особенно если они используются в запросах.

  • Ограничивать права доступа к базе данных, чтобы минимизировать последствия возможной атаки.

Пример использования PreparedStatement:

String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();

Такой подход предотвращает внедрение вредоносного SQL-кода через параметры.