gpt4 book ai didi

sql - 这个参数化查询是否对SQL注入(inject)开放?

转载 作者:行者123 更新时间:2023-12-05 09:30:49 28 4
gpt4 key购买 nike

有人查看我的代码说下面的 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注入(inject)开放,因为它使用了参数化查询。数据不会代替参数 ($1),而是在“绑定(bind)”消息中单独发送,因此无论数据包含什么,都不会被解释为 SQL 语句的一部分。

此外,看起来参数是一个整数,SQL 注入(inject)只能发生在字符串参数上。

关于sql - 这个参数化查询是否对SQL注入(inject)开放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69292758/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com