Testador de SQL Injection

Ferramenta educacional para entender ataques de SQL injection e aprender como preveni-los com queries parametrizadas

Todo o processamento acontece no seu navegador. Nenhum dado é enviado.
Offline Ready

Testador de SQL Injection

Ferramenta educacional para entender ataques de SQL injection e aprender como preveni-los com queries parametrizadas

🔒Todo o processamento acontece no seu navegador. Nenhum dado é enviado.
Template de Query
SELECT (Login)
Entrada do Usuário (Simulada)
Insira entrada de usuário simulada para ver como afeta a query SQL...
Payloads Comuns de SQL Injection
Query Vulnerável (Concatenação de String)
INSEGURO - Não use em produção
SELECT * FROM users WHERE username = 'user_input_here' AND password = 'pass123'
Alternativas Parametrizadas Seguras
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]);
Melhores Práticas de Prevenção de SQL Injection
1
Sempre use queries parametrizadas (prepared statements) em vez de concatenação de string para SQL.
2
Use um ORM (Sequelize, SQLAlchemy, Entity Framework) que gera queries parametrizadas automaticamente.
3
Aplique o princípio do menor privilégio: contas de banco de dados devem ter apenas as permissões necessárias.
4
Use allowlists para identificadores dinâmicos como nomes de colunas e tabelas que não podem ser parametrizados.
5
Implemente validação de entrada como medida de defesa em profundidade, mas nunca dependa dela como única proteção.
6
Habilite regras de WAF (Web Application Firewall) e monitore logs para padrões de tentativa de SQL injection.