gpt4 book ai didi

ruby-on-rails - 在 id 获取记录后放置 ~

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:11 26 4
gpt4 key购买 nike

如果我们有一个 Active Record 数据库说 Users

User.find(id) 按预期工作:

User.find(11)


但是User.find('id~')也是如此

User.find('11~')


还有 User.find('id~gibberish')

User.find('11~asdfasdf')


这是 ActiveRecord 的漏洞或缺陷吗?
我如何适本地处理此类请求?

最佳答案

这应该有助于澄清一些事情,它不是 ActiveRecord,您看到的是 Ruby 的 to_i 方法。

2.2.1 :001 > '11'.to_i
=> 11
2.2.1 :002 > '11~'.to_i
=> 11
2.2.1 :003 > '11~gibberish'.to_i
=> 11

这不是漏洞也不是缺陷。如果您担心这样的输入,我会要求举一个您认为它可能对您造成伤害的例子。

此外,如果你想要 super 防御,请使用 Integer(

2.2.1 :004 > Integer('11~gibberish')
ArgumentError: invalid value for Integer(): "11~gibberish"
2.2.1 :005 > Integer('11')
=> 11

关于ruby-on-rails - 在 id 获取记录后放置 ~,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33888211/

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