SQL-injeksjonstester
Pedagogisk verktøy for å forstå SQL-injeksjonsangrep og lære hvordan man forebygger dem med parameteriserte spørringer
All behandling skjer i nettleseren din. Ingen data lastes opp.
SQL-injeksjonstester
Pedagogisk verktøy for å forstå SQL-injeksjonsangrep og lære hvordan man forebygger dem med parameteriserte spørringer
🔒All behandling skjer i nettleseren din. Ingen data lastes opp.
Spørringsmal
SELECT (Login)
Brukerinndata (simulert)
Vanlige SQL-injeksjonspayloads
Sårbar spørring (strengsammenslåing)
UTRYGT - Ikke bruk i produksjon
SELECT * FROM users WHERE username = 'user_input_here' AND password = 'pass123'
Sikre parameteriserte alternativer
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]);Beste praksis for forebygging av SQL-injeksjon
1
Bruk alltid parameteriserte spørringer (prepared statements) i stedet for strengsammenslåing for SQL.2
Bruk et ORM (Sequelize, SQLAlchemy, Entity Framework) som genererer parameteriserte spørringer automatisk.3
Bruk prinsippet om minste privilegium: databasekontoer bør bare ha tillatelsene de trenger.4
Bruk hvitelister for dynamiske identifikatorer som kolonnenavn og tabellnavn som ikke kan parameteriseres.5
Implementer inndatavalidering som et dybdeforsvarstiltak, men stol aldri på det som eneste beskyttelse.6
Aktiver WAF (Web Application Firewall)-regler og overvåk logger for SQL-injeksjonsforsøkmønstre.