当前位置: 首页 > 面试题库 >

ASp.NET MVC EF4 SQL表或字段级安全

吴缪文
2023-03-14
问题内容

我对安全性有一个不寻常的要求,我正在寻找有关最佳做法或至少是非脆弱方法的建议。

场景:Intranet系统。有关许多相关实体的数据将被视为私有数据。这被称为系统的未发布部分。只有某些用户可以访问此数据。在某些阶段,用户可以从该数据中进行选择,标记一些记录并将其发布到“已发布”侧。已发布到发布端的数据将从未发布端删除。然后,大部分系统用户都可以处理发布端的记录。

我知道这听起来像是父记录中的布尔字段,将其标记为已发布或未发布,但是让我解释一下我们要替换的系统如何解决此问题-
这是我们需要模拟的安全级别。它是一个平面文件数据库(Dataflex),其未发布和已发布的数据位于单独的表中,位于单独的服务器驱动器上,并在不同的房间中备份到单独的磁带上,并由不同的人员进行物理访问。网络权限可确保已发布的用户无法获取未发布的数据。该软件还管理权限,但是如果出现错误,或者程序员犯了错误,他们仍然无法访问错误的数据。可能会泄露此数据的系统管理员已通过积极的安全审查。

因此,我正在寻找有关如何使用MVC,EF4和SQL实现此目标的体系结构的建议。在一个极端情况下,我用两个SQL数据库构建了两个系统,它们具有不同的权限:可能具有web.config中包含的差异,因此它实际上是相同的代码库。在规模的另一端,该表中的标志带有标记为拒绝访问的控制器方法。(那不好,因为如果程序员搞砸了,说一个搜索查询,并且它返回错误类别的数据,并且使它不为人所知,这很可能导致人类牺牲,狗和猫在一起生活…质量歇斯底里)

抱歉,冗长的描述。有关如何访问此内容的最佳做法或其他建议。


问题答案:

不是特定于MVC / EF的答案,而是TechNet上有一篇较旧的文章(适用于SQL Server 2005),它回答了很多问题,可能很有用:

“使用SQL Server 2005在分类数据库中实现行级和单元级安全性”

在Technet上可用。相同的论文也可以作为Word文档下载。



 类似资料:
  • 我正在从事一个项目,我们需要向用户提供现场级访问。 示例: 假设有一个名为employee的实体,其中包含多个字段 应用程序应该允许在实体的字段级别进行安全访问。 用户被允许根据访问来编辑/读取字段。 我们已经想到了使用Spring acl的实现,但它提供了实例级安全性。 有人能告诉我一个优雅的方法来实现它吗? 提前谢谢。

  • 你可以选择要导出的字段。在默认情况下,列表中所有字段都已选择。如果你不想导出某些字段,首先取消勾选“全部字段”选项,然后在列表中取消勾选那些字段。 【注意】导出查询结果时,向导会将会跳过这个步骤。

  • 我正在使用DocuSign REST API发送文档进行签名。我使用的是Php Rest Docusign Api类。我想把PDF表单字段转换成DocuSign安全字段。根据https://www.DocuSign.com/p/restapiguide/content/Rest%20Api%20references/document%20parameters.htm上的DocuSign Rest

  • 问题内容: 我在想出可以验证JSON是否包含以下任一内容的JSON模式时遇到了麻烦: 仅一个字段 仅另一个领域 (其他两个字段之一) 但如果存在多个则不匹配。 具体来说,我要 和/或 进行验证,但我不想接受更多的验证。 这是到目前为止我得到的: 这比我想要的要匹配。我希望它符合以下所有条件: 但不符合: 我猜想我有明显的失踪-我想知道它是什么。 问题答案: 问题是“非”语义。“不需要”不表示“禁止

  • 可以像访问页面中的其他元素一样,使用原生DOM 方法访问表单元素。此外,每个表单都有elements 属性,该属性是表单中所有表单元素(字段)的集合。这个elements 集合是一个有序列表,其中包含着表单中的所有字段,例如<input>、<textarea>、<button>和<fieldset>。每个表单字段在elements 集合中的顺序,与它们出现在标记中的顺序相同,可以按照位置和name

  • 在2019年7月(版本2.20190722)中,添加了更编纂的字段API。 它旨在尽可能地向后兼容。 这意味着,如果您在2019年7月之前创建了自定义字段,则很有可能会继续工作。 在决定是否需要升级自定义字段之前,应通读“危险区域”部分,并对您的字段进行全面测试。 由于在2019年7月之前字段之间缺乏标准化,因此很难涵盖开发人员可能需要进行的所有更改。 本文档尝试涵盖所有可能的更改,但是如果本文档