gpt4 book ai didi

javascript - 使用 Javascript 查询生成器时防止 Rails 中的 SQL 注入(inject)

转载 作者:行者123 更新时间:2023-12-03 07:23:12 24 4
gpt4 key购买 nike

我想使用 jQuery 查询生成器作为多用户应用程序中的工具:http://mistic100.github.io/jQuery-QueryBuilder/

我知道如果设置不正确,使用这样的工具可能会带来 SQL 注入(inject)的巨大风险。

我知道防止 SQL 注入(inject)的传统方法(即对 WHERE 语句进行硬编码,而不是直接插入用户输入的字符串),但在这种情况下,考虑到动态性和灵 active ,这将被证明有点困难我们正在努力保留东西。

我想知道是否有任何简单的方法可以在使用此类查询生成器时设置安全流程。主要担心的是一个用户能够访问和/或修改另一个用户的记录(我并不担心他们弄乱自己的记录,但它们都在同一个数据库中)。

我的一个想法是查找并替换任何有问题的单词(即 DROP 等),但我知道这会对用户输入造成限制(即,如果他们想要搜索与“He drop the ball”匹配的记录")...也许也不是万无一失的。

除了必须编写一些复杂的算法来生成服务器端 SQL 代码之外,还有其他可行的方法吗?

最佳答案

一般来说,您应该只接受索引 GET 请求中真正的“过滤器”参数。即使如此,您也不想随意获取所有参数并将它们插入 WHERE 子句中。

如果您想让用户创建复杂的条件,您可以创建一个简单的解析器,它接受用户输入并通过 Arel 构建 SQL 语句。

或者您可能想使用现有的引擎进行全文搜索,例如 Lucene。

关于javascript - 使用 Javascript 查询生成器时防止 Rails 中的 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113173/

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