gpt4 book ai didi

ruby-on-rails - 为 Rails 上的连接、限制、选择等(不是条件)的 SQL 片段安全地转义字符串

转载 作者:数据小太阳 更新时间:2023-10-29 06:40:55 26 4
gpt4 key购买 nike

在 Ruby on Rails 中,对于条件,很容易进行 SQL 防注入(inject)查询:

:conditions => ["title = ?", title]

标题来自外部,来自 Web 表单或类似的东西。

但是,如果您在查询的其他部分使用 SQL 片段怎么办,例如:

:select => "\"#{title}\" AS title"   # I do have something like this in one instance
:joins => ["LEFT JOIN blah AS blah2 ON blah2.title = \"#{title}\""]

有没有办法正确转义这些字符串?

最佳答案

通常在 Rails 中,连接是作为表示 i​​d 连接的符号(或作为二阶连接的散列)完成的,您可以使用条件对其进行过滤。如果您需要按所示进行,那么您可以使用 ActiveRecord 的 sanitize_sql_array清理 SQL 字符串,如下所示:

sanitize_sql_array(["LEFT JOIN blah AS blah2 ON blah2.title = ?", @blah.title])

关于ruby-on-rails - 为 Rails 上的连接、限制、选择等(不是条件)的 SQL 片段安全地转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1723721/

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