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.
Offline Ready

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)
Unesite simulirani korisnički ulaz da vidite kako utječe na SQL upit...
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.