例如我正在使用AngularJS编写一个Web应用程序,它会为用户存储机密信息,如信用卡号。
我在想我应该使用哪些安全协议。我没有安全经验,所以我发现自己在这类问题上无能为力。我已经整理了一些要求:
我很困惑到这一点,因为要求似乎与自己相矛盾。我必须对用户密码执行不可逆转的转换,而我的服务器不能要求原始,这意味着转换只能在客户端进行。另一方面,您永远不会信任客户端,因为它对用户开放并且容易被黑客攻击。
是否有任何现有的安全协议/框架可以解决我提到的问题?
答案 0 :(得分:1)
1)如果您正在处理任何类型的机密信息,您应该使用https。这将允许密码从客户端发送到您的服务器。 2)在密码创建时将其哈希,并将该哈希保存在数据库中。在将来的登录时,您可以散列提供的密码并比较散列值。
3)如果您正在处理信用卡信息,那么您需要考虑其他一些东西。您应该快速了解PCI要求(如果您要保存信用卡信息),如果您只是想处理信用卡,我建议将其委托给第三方资源,如Stripe。他们将为您处理所有卡片安全问题。
答案 1 :(得分:1)
您还应该考虑清理和验证用户输入,以避免SQL注入,跨站点脚本等。