Go сам по себе не защищает — защищают параметризованные запросы в database/sql. Когда пишешь db.Query("SELECT * FROM users WHERE email = $1", email), драйвер отправляет запрос и параметры отдельно — база данных знает, что $1 это данные, а не SQL-код. Инъекция невозможна. Тот же принцип в sqlc (генерирует параметризованные запросы) и в pgx. Проблема возникает только если ты сам конкатенируешь строки. Линтер sqlclosecheck и review помогают ловить такие ошибки. Также ORM типа GORM используют параметризацию по умолчанию.
Как Go защищает от SQL injection?
Junior
613 просмотровAFK Offer AI
Как работать с gorilla/websocket?