You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails多态下拉选框:使用Signed Global ID是否需限制模型?

Rails中使用Signed Global ID时是否需要限制关联类?

我正在开发一款Rails应用,其中User模型通过Assignment关联模型,可关联0个或多个BusinessUnit对象,和/或0个或多个Location对象。关联模型的代码如下:

class Assignment < ApplicationRecord
  belongs_to :user
  belongs_to :assignable, polymorphic: true

  validates :user_id, uniqueness: { scope: [:assignable_type, :assignable_id] }
end

我在用户编辑页面实现了一个多选下拉框,用于给用户分配地点/业务单元,开发时参考了两篇关于使用Signed Global ID实现多态选择的指南。其中一篇指南明确要求必须限制仅允许指定类(对应我的场景就是BusinessUnit和Location)被关联;而另一篇指南则认为使用Signed Global ID时无需做此限制,理由是:

用户仅能设置表单中允许的记录作为关联对象

我想知道哪种观点是正确的?我的直觉是Signed Global ID(带有过期时间、非幂等、包含时间戳)无法被伪造为指向任意类和对象,但这是我首次使用Signed Global ID,想确认是否存在遗漏的安全漏洞。

内容的提问来源于stack exchange,提问作者NGobin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:52:03