0

例如,我正在使用 AngularJS 编写一个 Web 应用程序,它为用户存储机密信息,例如他们的信用卡号。

我在想我应该使用哪些安全协议。我在安全方面没有经验,所以我发现自己在这类问题上无能为力。我整理了一些要求:

  • 客户端永远不会受到保护,因此服务器需要对用户身份进行自己的验证。
  • 服务器不能将密码作为纯文本存储在数据库中,而是一个不可逆转的修改字符串。
  • 通过互联网发送密码是不安全的,因此服务器无法要求原始密码。

到目前为止,我很困惑,因为要求似乎自相矛盾。我必须对用户密码进行不可逆的转换,而我的服务器无法要求原始密码,这意味着只能在客户端进行转换。另一方面,您永远不能信任客户端,因为它对用户开放并且容易被黑客入侵。

是否有任何现有的安全协议/框架可以解决我提到的问题?

4

2 回答 2

1

1) 如果您正在处理任何类型的机密信息,您应该使用 https。这将允许将密码从客户端发送到您的服务器。2)在创建密码时对其进行散列,并将该散列保存在您的数据库中。以后登录时,您可以对提供的密码进行哈希处理并比较哈希值。

3)如果您正在处理信用卡信息,那么您必须考虑一大堆其他东西。您应该快速查看 PCI 要求(如果您要保存信用卡信息),如果您只是想处理信用卡,我建议您将其委托给 Stripe 等第三方资源。他们将为您处理所有卡安全方面的问题。

于 2013-01-17T18:38:09.590 回答
1

您还应该考虑清理和验证用户输入以避免 SQL 注入、跨站点脚本等。

于 2013-01-18T18:55:07.703 回答