security - 安全存储客户端敏感数据

标签 security cookies encryption data-storage bcrypt

背景故事 我在一家中小型公司工作,我们正在重新设计面向客户的会计门户,我的经理希望使用存储在最终用户计算机上的 cookie 中的信用卡信息来进行单击付款选项。我根本不喜欢这个想法……(事实上我仍在努力改变他的想法)。话虽如此,我正在努力使其尽可能安全,我认为我有办法将风险降到最低,如下:

所有交换均使用 SSL

对本地存储的多个cookie中的数据进行加密 将密码作为每次都必须输入的确认密码。强制密码更强,比如 15 个以上的混合字符,这可以通过检查服务器上的哈希值来确认。

我知道主要的弱点是以双向加密方式存储的 cookie 信息,也就是说这是一种相当安全的存储信息的方式....

问题 如何使用这个基本方法来改进它。

拜托我知道会有很多不要这样做!的答案(如果我没有问,我就会成为其中之一)所以请具体说明,您正在向合唱团宣讲这一点,因此在否定方面要具有建设性。

编辑 - 如果您认为我可以在与经理推理时使用具体观点,请分享。 (我已经提出,如果 CC 信息从 cookie 中被盗,我们可能要承担法律责任,他说他会让律师检查一下)

谢谢。

最佳答案

using SSL for all exchanges

无论您使用什么解决方案,只要涉及信用卡/付款信息,都应该这样做。您可能知道。

encrypt the data in a number of cookies that are stored locally having the cipher as a confirm password that must be entered each time. forcing the cipher to be strong, say 15+ mixed chars, and this is confirmed by checking a hash of it on the server.

我通常会记住我的信用卡号,而且我宁愿把它放进去(因为我已经打算不向任何人透露它),而不是大多数客户无论如何都会写在某处的又长又复杂的 key 。

即使我们不被允许说“不要这样做!” - 你为什么不向我们询问有什么好方法来劝阻你的经理做出这个决定呢? ;-)

是什么让你不愿意把这个存储在服务器端?这不像亚马逊将我的信用卡信息存储在 cookie 中。基本思想是将所有用户信息存储在服务器上,并在用户成功验证(即登录)时访问它。

在这种情况下,Cookie 用于在浏览器 session 之间保留已登录状态。此登录 session 有权访问的信息存储在服务器上。对于信用卡信息来说,这通常比其他敏感信息需要更高的安全性,但基本思想是相同的。

当一些精通技术的客户意识到您在做什么时,在 Cookie 中存储实际的信用卡号码(加密或未加密)可能会成为潜在的公关噩梦。

更多阅读主题:What information is OK to store in cookies?

编辑:我读这个问题越多,我就越目瞪口呆。您的经理知道 cookie 是什么吗?怎么运行的?它有什么意义呢?说你想在 cookie 中存储信用卡信息就像说你想用鞋子作为运输鞋带的工具一样。 他无缘无故地主动、有目的地搬起石头砸自己的脚。他想要实现的目标可以通过其他更安全的技术更容易地实现 - 而不会损失任何功能。

来自 article由斯科特·汉塞尔曼链接:

Storing Credit Cards

If you absolutely must store credit card data it should be stored in encrypted form.

There are various compliance standards (specifically CSIP and PCI) that vendors are supposed to follow that describe specific rules of how networks need to be secured and data stored. These rules are fairly complex and require very expensive certification. However, these standards are so strict and expensive to get verified for that it's nearly impossible for smaller businesses to comply. While smaller vendors are not likely to be pushed to comply, not complying essentially releases the credit card company of any liability should there be fraud or a security breach. In other words you are fully responsible for the full extent of the damage (realistically you are anyway – I'm only echoing back the rough concepts of these certifications).

(我的重点)

关于security - 安全存储客户端敏感数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11760602/

相关文章:

带有服务器后端的 iPhone 应用程序 - 如何确保所有访问仅来自 iPhone 应用程序?

java - 如何使用 HttpClient 在 Android 中管理 PHP session ?

java - 我的 Cipher 实现出现 NullPointerException

java - keystore 操作因 RSA 签名和验证失败

php - 安全登录 : public key encryption in PHP and Javascript

android - 在 Android 中隐藏应用程序和服务?

spring - 如何在 Spring Security @PreAuthorize/@PostAuthorize 注解中使用自定义表达式

python - QWebKit 的永久 cookie——从哪里获得 QNetworkAccessManager?

cookies - HTTP 状态管理机制 (Cookies) 的当前状态

android - 错误填充异常 : Blocktype mismatch: 0