asp.net – 数据库加密或应用程序级加密?
当您需要存储CC或SSN等敏感数据时,您是否:
1)在应用程序中构建自己的加密例程,在配置文件中的某处定义密钥,然后手动加密/解密进入数据库的数据. 2)使用内置的数据库功能将所有问题推送到数据库(我认为大多数供应商称之为透明数据库加密). 您为解决方案找到了哪些权衡取舍?与TDE相比,编写自己的例程表现不佳吗?代码可维护性,还是数据库供应商锁定问题? 解决方法
我使用了各种加密技术,我相信使用经过验证的加密例程(即.NET库)在应用程序端加密更容易,更安全.
如果对数据库进行加密,则表示数据以未加密的形式发送到数据库或从数据库发送.这可能允许在应用程序和数据库上的加密例程之间进行窥探/篡改.即使您将密钥存储在应用程序端,数据库端仍然需要执行加密.如果数据库遭到破坏,您的数据将面临严重风险(想象一下,当您的应用程序运行时,有人会运行探查器). 如果在应用程序中加密/解密,则敏感数据(包括密钥)永远不会在应用程序服务器外部泄露.有人必须妥协Web服务器和数据库服务器才能访问您的所有数据. 此外,我强烈建议您不要自己加密例程.您可能会犯一个会降低解决方案整体安全性的错误. 编辑: 还想添加另一个会影响您决定的因素.您是否需要查询该加密数据?如果在应用程序级别进行加密,则需要将数据带到应用程序,解密并从那里开始工作.随着数据集变大,这变得越来越严重 – 而使用数据库加密,您可以在将数据发送回应用程序之前对其进行过滤. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 序列化 – Newtonsoft中的TypeNameHandling需要$type作为第
- 实体框架4 – ASP.NET MVC 3应用程序使用Ninject,实体框架4
- asp.net – 我可以覆盖web.config中的连接字符串以进行本地
- asp.net – 如何阻止.net中的libwww-perl访问?
- asp.net-mvc-3 – MVC 3模型属性未在html.action调用的部分
- asp.net – Visual Studio 2008使用CodeBehind失去了对于AS
- ASP.NET控件来渲染
- 拆分/模块化大型ASP.NET Web应用程序项目
- asp.net-mvc-3 – 在Kendo网格中显示datetime字段的空单元格
- ASP.net C#:如何使用File.ReadLines(fileName).GetEnumera
- asp.net – 在Web.config中读取和编辑配置
- 如何在ASP.NET中绘制折线图
- asp.net – 你如何’规范’一个Web服务器来支持给
- asp.net-mvc – ASP.NET MVC – CustomeAuthoriz
- 【DevExpress v17.2新功能预告】DevExpress ASP.
- asp.net-mvc – 我们可以在Controller中创建静态
- ASP.NET -- WebForm -- Session的使用
- 禁用ASP.net文本框而不实际禁用它?
- [译]ASP.NET Core 2.0 带初始参数的中间件
- 在 ASP.NET Web API 中使用 Attribute 统一处理异