_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN
Let's talk

SQL Injection Prevention — A Complete Guide

23. 03. 2024 1 min read 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í

Key Takeaway

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

securitysql injectiondatabase
Share:

CORE SYSTEMS tým

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