gpt4 book ai didi

ruby-on-rails - 在 Ruby on Rails 中将安全逻辑与模型混合?

转载 作者:行者123 更新时间:2023-12-04 07:30:47 24 4
gpt4 key购买 nike

在模型中混合处理安全逻辑的代码是不好的设计吗?

在 before_save 回调中编辑页面的示例

  • 当前用户是从current_user中抓取的 Controller 层中的方法。
  • 如果 current_user.has_permission? :edit_page 则抛出异常是假的
  • editor_id设置为 current_user.id
  • 更改记录在单独的表中

  • 该模型不是应用程序中唯一的安全检查。用户界面在显示编辑 View 之前检查权限。该模型充当了针对 View/Controller 级别中的任何错误的屏障。

    注意:模型和 Controller 级别之间的唯一突破是 current_user方法。我正在开发的应用程序永远不会允许匿名用户。

    最佳答案

    MVC 框架中的模型应该完全包含您的所有业务逻辑。在一个设计良好的 MVC 应用程序中,至少在理论上,您应该能够在不同的上下文中重用您的模型,而无需重新实现您的任何业务逻辑。

    在每种情况下,我都认为授权、输入验证和审计日志记录是非常明确的业务逻辑,因此应该在您的模型中处理。

    另一方面,我认为身份验证、加密、加密哈希等不是模型的一部分。这些安全方面不是核心业务逻辑的一部分,它们通常是应用程序接口(interface)的一部分。

    关于ruby-on-rails - 在 Ruby on Rails 中将安全逻辑与模型混合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/765840/

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