SQL Injection Tester

Pang-edukasyong tool para maunawaan ang mga SQL injection attack at matutunan kung paano pigilan ang mga ito gamit ang parameterized query

Lahat ng proseso ay nangyayari sa iyong browser. Walang data na ina-upload.
Offline Ready

SQL Injection Tester

Pang-edukasyong tool para maunawaan ang mga SQL injection attack at matutunan kung paano pigilan ang mga ito gamit ang parameterized query

🔒Lahat ng proseso ay nangyayari sa iyong browser. Walang data na ina-upload.
Template ng Query
SELECT (Login)
User Input (Simulate)
Maglagay ng simulated user input para makita kung paano nito naaapektuhan ang SQL query...
Mga Karaniwang SQL Injection Payload
Vulnerable Query (String Concatenation)
HINDI LIGTAS - Huwag gamitin sa production
SELECT * FROM users WHERE username = 'user_input_here' AND password = 'pass123'
Mga Ligtas na Parameterized na Alternatibo
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]);
Pinakamahuhusay na Kasanayan para sa Pag-iwas sa SQL Injection
1
Palaging gumamit ng parameterized query (prepared statement) sa halip na string concatenation para sa SQL.
2
Gumamit ng ORM (Sequelize, SQLAlchemy, Entity Framework) na awtomatikong gumagawa ng parameterized query.
3
Ipatupad ang prinsipyo ng least privilege: ang mga database account ay dapat magkaroon lamang ng mga permisong kailangan nila.
4
Gumamit ng mga allowlist para sa mga dynamic na identifier tulad ng column name at table name na hindi maaaring i-parameterize.
5
Magpatupad ng input validation bilang defense-in-depth na hakbang, ngunit huwag umasa dito bilang tanging proteksyon.
6
I-enable ang WAF (Web Application Firewall) rule at subaybayan ang mga log para sa mga SQL injection attempt pattern.