【发布时间】:2010-06-21 18:53:42
【问题描述】:
我目前正在为使用富客户端的客户构建 Web 应用程序。 (弹性)
在这个应用程序中,用户有一个密码,以及一些其他关键属性,这些属性在整个系统中用于识别目的。 (例如,母亲的娘家姓)。
用户最初使用其密码登录。然后,在整个应用程序中,每当用户要执行“破坏性”操作时,他们都需要输入这些其他识别数据之一。
我的客户要求我在登录后加载这些属性,将它们存储在内存中,并在客户端上针对这些数据执行验证,然后再进行执行破坏性操作的服务器调用。
这让我觉得这是一个潜在的安全风险,因为有可能(尽管很难)欺骗 Web 客户端,并检索通过网络发送的这些数据。我的客户认为我偏执并敦促我前进。
需要考虑的一些关键点:
- 应用程序通过 HTTPS 提供服务
- 所有客户端/服务器通信都通过 HTTPS 进行
- 此数据仅在登录后发送给客户端
- 在登录期间,会话发出一个安全的 cookie。
因此,在很大程度上,该应用程序是相当安全的。
但是,我的直觉告诉我,虽然破解数据可能很困难,但它仍然不如我们根本不发送数据并在服务器上验证的安全。
我是偏执狂,还是这是真正的安全风险?
如果这是一个有效的问题,是否有任何最佳实践文件可供我的客户参考,以证实我的观点?
【问题讨论】: