我在一个开发团队中,产品经理希望允许内部用户“模仿最终用户并按照用户的看法显示站点”。我认为这会引发安全标志,即使允许,数据也应该被混淆,用户界面应该是只读的。当我打电话给我的银行或电话公司寻求技术支持时,他们能冒充我吗?
谷歌“我在哪里可以讨论应用程序数据安全?”导致白皮书和产品网站,而不是论坛或讨论。
冒充最终用户是应该允许的吗?如果是的话,应该如何做?在不丢失数据完整性的情况下,如何做到这一点?
发布于 2021-07-16 12:31:06
事实上,这是相当普遍的,但我不认为有一个一般的指导方针,因为细节取决于每一种情况。但至少有几个关键点需要记住。
在生产和发展中,有两种模仿。在一个复杂的环境中,在您有多个用户角色和能力的情况下,模拟开发非常接近于一个要求。如果您有几十个或数百个用户可以做但另一个用户不能做的事情,那么开发人员和测试人员需要能够“成为”一个拥有所有权限的特定用户。即使用户之间唯一不同的特性是他们的数据,它在开发中仍然是有用的,因为它是一种快速而简单的获取相关数据的方法。
在生产中,有两个关键的事情要记住,问责制和数据隐私。
冒充不一定要与责任相冲突,仅仅因为你允许某人做别人做的每一件事,并不意味着你不能记录到底是谁干的。审计数据可能显示E,E代表U,或最终只是U,最后一个应该避免,因为它确实混淆了问责。以您的银行为例,如果银行记录显示Employee555将钱从您的帐户转移到另一个帐户,并且记录显示Flip疑是转移的,这是完全不能接受的。
数据隐私,你的模仿者应该是已经有能力查看数据的人。模仿的能力不应该是所有员工都应该具备的。在确定要进行模拟的内部角色时,应该记住这一点。在您的开发环境中,任何必要的数据混淆都应该进行,而不管是否模拟。如果您不希望开发人员在开发中看到它,那么它就不应该出现在您的开发环境中。
我会注意到,我的银行确实给予了什么,可以被认为是“模拟”,它使用OAuth (我相信),允许我给第三方网站只读的许可,我的帐户。我的几个信用卡账户也是。我之所以提到这一点,不仅是因为您的银行引用,而且是因为它提供了另一个需要考虑的模型:访问,但只需获得许可。
发布于 2021-07-15 13:15:06
通常,这不是通过模拟另一个用户来实现的。相反,客户支持人员被授予修改客户数据的权限。任何修改应记录修改的日期和时间,以及修改日期和时间的人。记录有关数据被修改的人和时间的信息在某些事情不正确的情况下至关重要,无论是出于意外还是恶意目的。
根据数据的重要性,应该防止诸如覆盖和删除之类的破坏性操作。对数据的任何修改都应导致插入带有一些重复数据的新行。任何数据的删除都应该通过“软删除”来完成,其中您将状态标志设置为“已删除”或“无效”。这允许在客户支持过程中完全透明,并使所有数据更改都是可逆的。
当需要对终端用户设备、远程桌面应用程序或某种虚拟化软件进行支持时,就会以自己的身份连接到设备(支持技术员)。辅助人员不应作为最终用户进行联系。你关于提高安全标志的论点是有道理的。
发布于 2021-07-15 15:52:35
你是正确的。但是您的经理真正的意思是“如果用户有错误或问题,我希望能够复制它,这样我就可以帮助他们解决它”。
我建议您设置一些具有不同场景的测试用户。锁定,零余额,取消订单,无论这应该让你检查那些方案的错误,并检查屏幕的样子,如果你得到一个客户与相同的设置。
您还应该有一个帮助客户的管理界面,它允许您采取各种操作。但不是作为那个用户,作为一个客户支持的人。所以取消订单,付款,向后发射导弹什么的。
另外,您应该能够实时地检查日志,并通过用户进行筛选,这样您就可以看到他们实际在做什么,以及他们说他们在做什么,以及任何错误等等。
https://softwareengineering.stackexchange.com/questions/430282
复制相似问题