如何从内部保护系统(如内部工作)?

Ron*_*ald 5 c# database sql-server security asp.net-mvc

我在一个流行的网络托管服务中部署了一个应用程序.因为他们对自己的计算机拥有管理员权限,所以我觉得我迫切需要跨所有层保护我的数据,包括数据库本身.

在数据库上,我正在考虑加密敏感信息,如用户名和电子邮件,可能是他们的电话号码等.存储库层将处理所有编码/解码要求.

我有三个DLL:1)应用程序层(控制器和视图),2)业务层(服务逻辑)和3)数据层(存储库).

通常,来自外部的用户将请求页面,如果他们尚未通过身份验证,则会将其重定向到登录页面,这是典型的表单身份验证内容.这可以保护系统免受外部非特权用户的攻击.

但是,在内部,从技术上讲,这些DLL可以导入到任何.NET应用程序中.在这种情况下,应用程序可以随时访问系统的内部工作.

Mar*_*den 9

如果数据托管在其他人拥有管理员访问权限的计算机上,则无法最终保护您的数据并仍然可以访问它.您使用的任何加密都将依赖于秘密,但您必须将密钥存储在盒子上,此时盒子的所有者才能访问它.

唯一可行的方法是,如果您的用户在上传之前在本地加密了数据,那么您的服务器会将相同的加密数据提供给他们.但在那时,您将无法在服务器端对该数据执行任何操作.

您需要查看服务器提供商的政策,了解他们对您存储在服务器上的数据的处理方式,并询问:

  1. 他们保证不查看数据吗?
  2. 你相信他们遵循这个政策吗?
  3. 您是否相信他们能够保护其服务器免受入侵?
  4. 由于法律原因,他们是否必须将其数据放弃给其他人,尽管他们的政策?例如,各国政府可以让公司披露数据.

然后,您可以权衡风险并决定是否:

  1. 您对风险感到满意,但仍希望将敏感数据存储在其中.
  2. 您的用户是否对风险感到满意 - 您需要清楚地传达您自己的隐私政策和风险,以便他们做出明智的选择.

另外,考虑是否需要存储所有信息.你为什么需要电话号码?如果是处理付款,您可以将所有这些交给可信赖的第三方,例如Visa或Paypal.然后他们可以安全地处理用户数据的存储,而不必处理风险.