tgoop.com/pvsstudio_rus/1825
Create:
Last Update:
Last Update:
Java отдел снова с вами. Мы к этому долго шли, и вот наконец рады представить вам нашу первую taint диагностику. Если конкретнее – теперь мы умеем искать потенциальные SQL-инъекции.
SQL-инъекция – уязвимость, позволяющая злоумышленнику внедрить свой код в SQL запрос. Если в запросе используются данные извне, то без их корректной проверки вы рискуете целостностью и конфиденциальностью информации, хранящейся в вашей БД.
@Autowired
private JdbcTemplate template;
@GetMapping("/get_all_secret_data")
public void getEndpoint(@RequestParam String param) {
var sql = "SELECT * FROM Users WHERE id = '" + param + "'";
template.execute(sql);
....
}
В случае, если пользователь окажется злоумышленником и значение 'param' будет примерно следующим - "111' or 1=1; drop table users; select '" - с таблицей 'users' можно будет попрощаться. Поэтому, очень важно проверять данные, приходящие от пользователей.
И наша новая диагностика умеет находить в коде места, куда приходит запрос с непроверенными данными извне. Попробовать её вы можете уже с декабря, начиная с релиза 7.34.
#PVS_Studio #java