MVC应用程序中的安全性和访问控制

标签 security model-view-controller access-control

我只是最近才开始使用MVC方法,所以我认为这对您来说是一个简单的专家:

我应该在哪里放置访问控制?

  • 在 View 中?除了模板中的开关和标志之外,我不想有任何逻辑,因此听起来像是最不可行的选项
  • 在模型中?每个业务对象是否应该根据谁的询问来决定将显示有关自身的哪些数据?
  • 在 Controller 中?这就是我现在拥有的位置,但是很难保持业务规则一致

  • 还是还有其他选择?

    最佳答案

    这将取决于您所使用的框架,而语言将决定您可以使用的许多工具。

    从高层次上讲,您应该在进入点处配置访问安全性。并且,您应该仔细检查访问安全性的每个级别,这些级别可以被认为是自治的,或者可以从应用程序的多个部分重复使用(谁知道安全性是否由使用您的逻辑层的同事的门户检查过?等等)。另一个值得担心的问题是数据安全性,它与您的数据越接近越好(因此,属于上面的#2,但要理解它是独立的)。

    这类似于我喜欢谈论的应用程序逻辑和域逻辑之间的差异。如果存在某个特定于某个特定应用程序的逻辑(与Windows服务相比,Web应用程序或其他任何逻辑),则应仅在该应用程序中定义该逻辑。如果某些逻辑跨越了应用程序之间的边界(可以在应用程序之间重用),那么它就可以视为领域逻辑,应该在模型中进行定义。您的应用程序可以使用域逻辑,但是他们不应该拥有它。

    关于MVC应用程序中的安全性和访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/291294/

    相关文章:

    linux - 如何限制 Ubuntu 用户访问我的 Web 应用程序文件?

    java - 在 Play 框架中同时使用 CRUD 和安全模块

    jquery - 使用 HTML 帮助器在 cshtml 中引用 jQuery

    model-view-controller - MVC2 View 数据问题

    C#:如何检查我是否可以读取和/或删除目录

    azure - 对 Azure 存储资源管理器中的确切容器的私有(private)访问

    java - 为什么这被认为是不安全的?

    database - 为什么将密码哈希截断为 14 个字符?

    asp.net - 尝试在服务器上创建文件夹时访问被拒绝

    security - Symfony2 安全.yml