当前用户操作的逻辑安全

嘿,Robert!

我一直在分析关于帖子控制(操作)的插件代码和代码库,以评估我在安全性方面能做出哪些改进。

正如分析所示,在前端有若干步骤用于确保用户是否有权编辑帖子,例如:

  • 第 1 步:SiteSetting.post_menu_hidden_items
  • 第 2 步:attrs.canEdit
  • 第 3 步:editPost() - !post.can_edit - controllers/topic

不过,即使前端被篡改,一旦请求被发送到后端服务器,在 posts_controller.rb 的 update 方法中:

def update

Rails 会再次获取帖子,进行最终的检查:

  • !guardian.public_send(“can_edit?”, post)
  • guardian.ensure_can_edit!(post)
  • PostRevisor

感谢你的见解!
这真是太棒了。