【问题标题】:.NET Code access security.NET 代码访问安全
【发布时间】:2013-10-03 08:34:51
【问题描述】:

考虑以下场景。创建一个应用程序来管理每个员工记录存储在单独的单个文件中的人事记录。对于不同类型的员工数据,必须独立控制读写访问。该工具必须有权读取和写入某些部分(例如联系信息),只能读取其他部分(例如历史信息),并且不得访问其他敏感部分(例如工资率)。

如何使用 CAS 正确控制访问?在这种情况下,内置的 CAS 功能是否足够?

我的想法如下:

我们可以根据操作的类型分离代码,例如一个用于联系信息,另一个用于历史信息等。然后将它们中的每一个分配到单独的应用程序域中(对域具有适当的安全权限)。我们可以在 C# 中明确指定应用程序域的创建和相关权限吗?

【问题讨论】:

  • Gigantic overkill (IMO).. 为什么不在代码中维护这种安全性?
  • 当您说“文件”时,您是指平面文件吗?或者您正在使用某种数据库?
  • 您能否将敏感信息拆分为单独的文件而不是非敏感信息?平面文件也是硬性要求吗?数据库将是存储此类信息的一种更合乎逻辑的方式。

标签: c# .net security


【解决方案1】:

我个人会专注于保护数据。

将平面文件放在具有适当权限的目录中(例如,定义哪些组应该有权访问,授予组访问权限,并维护每个组的 ACL 以对应用户)。

当您的应用尝试打开其中一个文件时,您必须处理两种情况:

  1. 文件打开。正常处理这种情况并显示 UI。

  2. 由于文件系统权限不足,文件访问被拒绝。您的应用此时应显示适当的错误,然后允许用户返回主菜单或其他任何内容。

不要认为你需要做除此之外的任何事情。代码访问权限用于保护代码逻辑,而不是保护数据。

【讨论】:

  • 我认为问题是他想限制从文件中读取 within 部分。如果敏感信息与非敏感信息在同一个文件中,这将是完美的,但如果它被合并,则不是。
  • 哎呀,这确实很难!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多