2008-09-16 78 views
3

使开发人员能够构建包含私人数据的系统的当前做法是什么?任何人都可以指出这种事情的“最佳实践”指南?生产,测试,开发人员环境与安全

我们在这里有一个Catch-22,开发人员需要编写应用程序来对付那些被认为是“私有”数据的系统。 IT管​​理部门希望我们的开发人员无法访问数据(即提供模式或数据结构,而不是数据本身),而大多数开发人员(包括我自己)都希望能够访问生产数据,因为没有有代表性的数据集可能会导致错误的假设(例如数据格式)和错误。

有没有人有任何正式的“最佳实践”这种类型的东西?特别是来自某些“BigCo”公司(例如Microsoft,IBM)的官方Guildines可能会提供帮助,因为需要说服管理层。

回答

3

很多时候,将提供一个清除数据的子集,它代表私有数据,但不是私有数据本身。

+0

这正是我们在这里所做的,我可以诚实地说我们是一家非常大的公司(即> 10万名员工) – willasaywhat 2008-09-16 20:14:13

1

在MediumCo,我们从测试和开发中的生产数据中剥离出专有数据。它过去对我们有点伤害,没有完全具有代表性的数据,但客户之前曾询问过这一点,而且通常不是问题,因为环境中充斥着大量虚假的专有数据。

2

在我的公司,我们开始使用Red-gate的数据生成器来生成测试数据。有一些设置,但您可以使用这些工具来生成非常有用的测试数据。是的,我宁愿使用实时生产数据,但它不可行(尤其是如果您需要考虑在HIPAA中)。它使用每列的正则表达式,并允许您使用查找表的相关表。

0

我没有任何最佳做法纸张或任何东西。但是我认为,如果你正在开发一个作为受保护的环境作为生产数据的环境,那么就不会有太多争论。也就是说,如果您的生产数据库位于您的IT员工托管,控制和保护的数据中心中,并且您的开发数据库的生活环境完全相同,并且不提供任何访问该信息的新方法 - 你的状态会很好。作为良好意愿的附加标志 - 提供让任何担心安全的人都有机会进行某种渗透测试以确保您讲述有关安全的真相可能会很好。

另一方面,当然是分析不使用数据的成本:也就是说,它会导致代码变得越来越笨,在开发时将花费$ xxxxxx.xx,而几乎没有成本允许开发团队的一小部分访问所述数据。

+0

如果测试和开发人员被视为生产,每个开发人员都可以访问生产或有限在开发中访问。不能够运行一个选择查询或登录以不同的用户会严重阻碍我的发展。 – 2008-09-16 20:01:41

0

为避免手动清理/匿名数据,您可以使用随机文本替换 - 用随机字母数字替换每个文本字段中的每个字母数字字符。这:

  • 保持长度,大小等数据相似但从开发商的角度
  • 与字符集
  • 离开日期及号码不变,允许精确的测试对于日期范围和数量
  • 可满足大部分的隐私要求
不会造成问题

如果您想进一步了解一下,您可以在电话号码和邮政编码上使用随机数字替换号码,同时在其他文本字段上使用字母数字替换。

拥有自动替换脚本,您可以定期从实时系统获取最新的数据转储,因此您的测试在实践中与实际数据的大小和可变性保持同步。

这确实意味着少量的操作将不现实(例如,在名称字段上编制索引,现实生活中的索引集中在普通字母周围),但这些应该是有限的。

5

我对世界的看法可能不同,因为我位于英国,但在过去的20多年中,我主要在公共部门从事处理敏感数据的系统。 规则**完全**切割和干燥。开发区不允许生产数据。

作为基本原则,我们不希望对敏感数据的丢失负责。用户完全擅长这一点,他们自己。

在过去的12个月里,我的妻子已经从同一个政权转移到一个在私营部门,他们允许开发者访问生产数据,她被它吓坏了。法律影响(至少在英国)可能会很严重。

开发商不** **需要访问生产数据。这只是懒惰。定义和创建测试数据行使定义测试用例(包括边缘的情况下),不依赖于生产数据的随机式的性质。

如果你** **必须使用生产数据(即你设法说服人谁不知道任何好转,这是可以接受的),保证了数据的匿名** **之前到达发展房地产。