不给不存在的用户授予徽章?

我认为用户 ID 存储在 incoming_links 表中。这些记录不会被级联删除,而分享徽章查询仅防止 incoming_links 表中的 user_id 为 null:

https://github.com/discourse/discourse/blob/main/lib/badge_queries.rb#L199

“首次分享”徽章应该存在类似的漏洞:

https://github.com/discourse/discourse/blob/main/lib/badge_queries.rb#L64

3 个赞