gpt4 book ai didi

sql - ActiveRecord 的 "order"方法是否容易受到 SQL 注入(inject)?

转载 作者:行者123 更新时间:2023-12-03 20:16:43 26 4
gpt4 key购买 nike

我知道在调用 .where 时使用插值字符串是不安全的。 .

例如这:
Client.where("orders_count = #{params[:orders]}")
应改写为:
Client.where("orders_count = ?", params[:orders])
调用 .order 时使用插值字符串是否安全? ?如果不是,应该如何重写以下内容?
Client.order("#{some_value_1}, #{some_value_2}")

最佳答案

是的,ActiveRecord 的“order”方法容易受到 SQL 注入(inject)的影响。

不,在调用 .order 时使用内插字符串是不安全的。 .

我的问题的上述答案已得到Aaron Patterson 的确认。 ,谁指给我http://rails-sqli.org/#order .从该页面:

Taking advantage of SQL injection in ORDER BY clauses is tricky, but a CASE statement can be used to test other fields, switching the sort column for true or false. While it can take many queries, an attacker can determine the value of the field.



因此,手动检查前往 order 的任何内容很重要。是安全的;也许通过使用类似于@dmcnally 建议的方法。

谢谢大家。

关于sql - ActiveRecord 的 "order"方法是否容易受到 SQL 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17859880/

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