İçeriğe geç

SQL enjeksiyonu (ARCH3100)

Anahtar typescript.security.sql-injection · Önem error · Kategori security · CWE CWE-89

SQL sorgusunu kullanıcı girdisiyle birleştirerek veya interpolasyonla oluşturmak, saldırganların sorgu yapısını değiştirip veri okumasına veya değiştirmesine olanak tanır.

app.get("/users", async (req, res) => {
// email="' OR '1'='1"
const rows = await db.query(
`SELECT * FROM users WHERE email = '${req.query.email}'`
);
res.json(rows);
});
app.get("/users", async (req, res) => {
const rows = await db.query(
"SELECT * FROM users WHERE email = $1",
[req.query.email]
);
res.json(rows);
});

Her zaman parametreli sorgular veya hazırlanmış ifadeler kullanın; girdiyi asla sorgu dizesine birleştirmeyin.