SQL Injection tester
Edukativni alat za razumijevanje SQL injection napada i učenje kako ih spriječiti parametriziranim upitima
Sva obrada se odvija u vašem pregledniku. Nikakvi podaci se ne prenose.
SQL Injection tester
Edukativni alat za razumijevanje SQL injection napada i učenje kako ih spriječiti parametriziranim upitima
🔒Sva obrada se odvija u vašem pregledniku. Nikakvi podaci se ne prenose.
Predložak upita
SELECT (Login)
Korisnički ulaz (simulirani)
Uobičajeni SQL Injection payloadi
Ranjivi upit (konkatenacija nizova)
NESIGURNO - Ne koristiti u produkciji
SELECT * FROM users WHERE username = 'user_input_here' AND password = 'pass123'
Sigurne parametrizirane alternative
Node.js (mysql2)
const [rows] = await connection.execute( 'SELECT * FROM users WHERE username = ? AND password = ?', [username, password] );
Python (psycopg2)
cursor.execute(
"SELECT * FROM users WHERE username = %s AND password = %s",
(username, password)
)Java (PreparedStatement)
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM users WHERE username = ? AND password = ?"
);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();C# (SqlParameter)
using var cmd = new SqlCommand(
"SELECT * FROM users WHERE username = @user AND password = @pass",
connection
);
cmd.Parameters.AddWithValue("@user", username);
cmd.Parameters.AddWithValue("@pass", password);PHP (PDO)
$stmt = $pdo->prepare(
'SELECT * FROM users WHERE username = :user AND password = :pass'
);
$stmt->execute(['user' => $username, 'pass' => $password]);Najbolje prakse za prevenciju SQL Injectiona
1
Uvijek koristite parametrizirane upite (pripremljene izjave) umjesto konkatenacije nizova za SQL.2
Koristite ORM (Sequelize, SQLAlchemy, Entity Framework) koji automatski generira parametrizirane upite.3
Primijenite načelo najmanje privilegije: računi baze podataka trebaju imati samo dozvole koje su im potrebne.4
Koristite popise dopuštenih za dinamičke identifikatore poput naziva stupaca i tablica koji se ne mogu parametrizirati.5
Implementirajte validaciju ulaza kao mjeru dubinske obrane, ali se nikada ne oslanjajte na nju kao jedinu zaštitu.6
Omogućite WAF (Web Application Firewall) pravila i pratite zapisnike za uzorke pokušaja SQL injekcije.