【发布时间】:2021-11-16 10:11:14
【问题描述】:
查看我的代码的人说下面的 SQL 查询 (SELECT * FROM...) 显然容易受到攻击。我对此进行了研究,似乎我通过使用参数化查询正确地做到了这一点,但显然我遗漏了一些东西。
app.get("/api/v1/:userId", async (req, res) => {
try {
const teammate = await db.query("SELECT * FROM teammates WHERE uid = $1", [
req.params.userId,
]);
【问题讨论】:
-
我没看到。
-
这是一个参数化查询,所以它不是 sql 可注入的
-
他有没有具体说SQL注入?攻击的种类比这还多。例如枚举。
-
嗨@jjanes -- 是的,他特别引用了上面查询的那一行,并写道它“有一个非常明显的SQL注入漏洞”。不过,我会阅读枚举攻击。谢谢。这样做的背景是,我被一家著名的英国零售商招聘为初级/中级 SWE 职位,但当他们在我的 GitHub 上看到这一点时,我的第一轮面试被取消了。我不知道发表此评论的工程师的水平。
标签: sql node.js postgresql sql-injection