gpt4 book ai didi

sql - 使用 LIKE 子句正确格式化 sql 查询

转载 作者:行者123 更新时间:2023-11-29 13:24:38 24 4
gpt4 key购买 nike

我有一个带有 LIKE 子句的 SQL 查询,该子句使用 % 通配符。我读过 LIKE 子句可能有问题,就像这里:http://githubengineering.com/like-injection/ .但是我不确定对于某些用户输入,下面两个不同的函数调用之间是否会有性能差异(尽管查询本质上是相同的),以及它们之间的差异是否与链接中讨论的内容有关.

我预计对第一个函数的调用只会返回类似“&my-query%”的结果,因此用户的输入实际上被两个百分号包围,但事实并非如此。

(query db ["SELECT * FROM some_table WHERE some_value LIKE ?"
(str "%" user-input "%")])

(query db ["SELECT * FROM some_table WHERE some_value LIKE '%' ? '%']"
user-input])

最佳答案

您的第一个查询对我来说看起来很安全。第二个看起来像是无效的 SQL。看起来你正在尝试这样做:

(query db ["SELECT * FROM some_table WHERE some_value LIKE CONCAT('%', ?, '%')"
user-input])

这也是安全的。

不安全的查询会像这样将用户输入直接嵌入到 SQL 字符串中:

(query db [(str "SELECT * FROM some_table WHERE some_value LIKE '%" user-input "%'")])

关于sql - 使用 LIKE 子句正确格式化 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36016235/

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