gpt4 book ai didi

java - 如何在 SQL 查询中安全地使用 * 作为通配符

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:23 24 4
gpt4 key购买 nike

我需要实现一个搜索,用户可以在其中输入 * 作为通配符。他们正在搜索的数据库是一个 SQL 服务器。我正在考虑将 * 替换为 %:

userInput = userInput.replace('*', '%');

我担心因为我是“手动”执行此操作,所以我可能会引入一些错误或安全漏洞。你看到这样做有什么问题吗?有图书馆可以帮我做这件事吗?

我使用 Hibernate 作为 ORM 映射器和 Criteria API 来创建查询,如果它有助于回答的话。

最佳答案

这正是我们公司所做的。我们有两种产品,一种像您的示例一样在代码中使用简单的替换。另一个存储过程非常繁重的过程是在“搜索”存储过程本身中进行的。

无论哪种方式,我们都没有遇到过任何安全问题或用户对该系统的投诉。

只是为了显示存储过程的布局,但正如您所说的使用 ORM 可能是多余的:

CREATE PROC [dbo].[p_aaa]
@username nvarchar(100) = 'dbo',
@rows int = 0,
@name nvarchar(100) = '%'
AS

SET @name = REPLACE(@name, '*', '%')

关于java - 如何在 SQL 查询中安全地使用 * 作为通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11947270/

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