SQL Injection (ARCH5100)
Esta página aún no está disponible en tu idioma.
Key go.security.sql-injection · Severity error · Category security · CWE CWE-89
Embedding user input into a SQL query via concatenation or fmt.Sprintf lets attackers alter the query structure to read or destroy data.
Incorrect
Section titled “Incorrect”func getUser(db *sql.DB, name string) (*sql.Row, error) { q := fmt.Sprintf("SELECT id, email FROM users WHERE name = '%s'", name) return db.QueryRow(q), nil}Correct
Section titled “Correct”func getUser(db *sql.DB, name string) (*sql.Row, error) { return db.QueryRow("SELECT id, email FROM users WHERE name = ?", name), nil}Never concatenate input into queries; use parameterized queries (placeholders) for all user input.