Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Know-how
Nástroje O nás Spolupráce Kariéra
Pojďme to probrat

SQL Injection prevence — kompletní průvodce

23. 03. 2024 1 min čtení intermediate

SQL injection je stará přes 25 let, ale stále patří mezi top zranitelnosti. Každý vývojář by měl vědět, jak se bránit.

Prepared statements v různých jazycích

Python + psycopg2

cursor.execute(“SELECT * FROM users WHERE email = %s”, (email,))

Node.js + pg

const result = await pool.query(‘SELECT * FROM users WHERE email = $1’, [email]);

Java + JDBC

PreparedStatement stmt = conn.prepareStatement(“SELECT * FROM users WHERE email = ?”); stmt.setString(1, email);

Go + database/sql

row := db.QueryRow(“SELECT * FROM users WHERE email = $1”, email)

C# + Dapper

var user = conn.QueryFirst(“SELECT * FROM users WHERE email = @Email”, new { Email = email });

ORM vrstva

SQLAlchemy

user = session.query(User).filter(User.email == email).first()

Prisma

const user = await prisma.user.findUnique({ where: { email } });

Entity Framework

var user = context.Users.FirstOrDefault(u => u.Email == email);

Defense in Depth

  1. Prepared statements (primární obrana)
  2. ORM s parametrizací
  3. Input validace (whitelist)
  4. Least privilege DB účty
  5. WAF pravidla
  6. SAST skenování

Klíčový takeaway

Prepared statements jsou nepřekonatelná obrana. Používejte je vždy, ve všech jazycích, bez výjimky.

securitysql injectiondatabase
Sdílet:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.