← Каталог
Рекомендации по разработке на Java — 12.2. Защита от SQL-инъекций
Фрагмент из «Рекомендации по разработке на Java»: 12.2. Защита от SQL-инъекций.
// Плохо: уязвимость к SQL-инъекции
public User findByEmail(String email) {
String query = "SELECT * FROM users WHERE email = '" + email + "'";
return jdbcTemplate.queryForObject(query, User.class);
}
// Хорошо: параметризованный запрос
public User findByEmail(String email) {
String query = "SELECT * FROM users WHERE email = ?";
return jdbcTemplate.queryForObject(query, new Object[]{email}, User.class);
}
// Ещё лучше: использование JPA
public Optional<User> findByEmail(String email) {
return userRepository.findByEmail(email);
} // Плохо: уязвимость к SQL-инъекции
public User findByEmail(String email) {
String query = "SELECT * FROM users WHERE email = '" + email + "'";
return jdbcTemplate.queryForObject(query, User.class);
}
// Хорошо: параметризованный запрос
public User findByEmail(String email) {
String query = "SELECT * FROM users WHERE email = ?";
return jdbcTemplate.queryForObject(query, new Object[]{email}, User.class);
}
// Ещё лучше: использование JPA
public Optional<User> findByEmail(String email) {
return userRepository.findByEmail(email);
}