0

首先,我不是在寻找一种方法来存储我自己网站的密码以允许用户登录(我可以使用密码的加盐哈希轻松做到这一点)。

我正在建立一个个人网页,我希望能够在主页上查看我的 PayPal 余额。为此,我需要将我的 PayPal 凭据存储在 MySQL 数据库中,以便稍后从 PHP 检索它以登录 PayPal 并提取我的余额。我知道我可以将我的凭据留在 PHP 脚本上,但我想允许更多用户使用这个网站(每个用户都使用在我的网站上注册的自己的帐户登录)。

所以,我需要一种安全的方式来将 PayPal 密码存储在我的服务器上,而不是以纯文本形式保存。我对加密了解不多,所以我想问一下哪种方法最好。

我不确定这个问题是否应该出现在程序员网站上或者就在这里;对不起,如果我做错了。

谢谢。

4

5 回答 5

3

你不应该这样做。但既然您可能无论如何都会这样做,我建议使用他们用于登录您网站的密码来加密用户的 PayPal 密码。

正确的基于密码的加密使用公认的密钥派生函数,如 PBKDF2。除了密码之外,密钥推导还需要一些盐,这些盐应该由密码随机数生成器生成,以及一些轮次,对于 PBKDF2 至少应该是 6 万轮。

您应该使用相同的算法(使用不同的盐)进行身份验证;在从他们的密码中获取加密密钥后,使用它来加密一个常量、已知的纯文本,比如您的主机名。如果它与注册期间设置的值匹配,则它们已通过身份验证。

于 2013-04-02T03:18:14.300 回答
3

就因为没有答案显示了贝宝对此事的看法:

1.3 应用 ID 和 API 凭证。PayPal 将为您提供唯一的机密识别码、证书和 App ID,使您能够使用开发者工具。PayPal 还可能为您提供用于测试和/或生产的 API 凭证。PayPal 可自行决定出于任何原因立即终止或撤销您的 App ID 和/或 API 凭证。您不得将您的 App ID、API 凭证或其他 PayPal 帐户凭证出售、转让、再许可或披露给任何第三方(代表您执行服务的服务提供商除外),并且您同意立即通知 PayPal 任何违反您的这句话中的义务。如果您出售或以其他方式转让您的应用程序,或允许 API 调用者操作它,PayPal 同意向操作您的应用程序的 API 调用者颁发一个新的应用程序 ID。API 调用者对指示 PayPal 传输给它的任何个人数据负责。您应对使用您的 App ID、API 凭证或其他 PayPal 帐户凭证执行的所有活动负责。

5.2.1 法律协议和相关政策。您的应用程序和您对开发者工具的使用必须遵守以下法律协议和政策:

(a) 本协议,

(b) 用户协议,适用于您的版本以及适用于您的支持 PayPal 的服务的用户的任何其他版本;如果您接受来自您所在国家(或公司,如果是公司)以外国家/地区的用户,则该用户所在国家/地区的用户协议版本适用于该用户;

请注意,即使您不使用开发人员工具或 API,存储用户主题的凭据也会让您拥有开发用于 PayPal 的“应用程序”。

链接自:PayPal 开发者协议

并在用户协议中

如果您认为以下情况应立即通知 PayPal:

发生未经授权的交易、未经授权访问您的账户或发生其他错误;

您的帐户对帐单(您可以通过登录您的帐户访问您的帐户对帐单)或您通过电子邮件发送给您的交易确认有错误;

您的密码或 PayPal 移动 PIN 码已泄露;

您的 PayPal 借记卡或 PayPal 手机激活的手机丢失、被盗或停用;或者

您需要有关对账单或交易确认中列出的交易的更多信息。

于 2013-04-02T03:50:57.773 回答
2

适当的答案是“不要这样做”。

回答你的第二个问题:

Google Wallet 或 Paypal 如何存储您的信用卡安全号码和详细信息

您可以通过非常有趣的费用页面阅读有关PCI 合规性的信息。

于 2013-04-02T03:33:26.823 回答
1

你需要非常小心。您需要定期对您的站点和数据库进行彻底的渗透测试,以确保没有安全漏洞。付钱请专业人士为您做这件事。

如果是我并且我致力于这样做,我会通过使用密钥的对称加密算法(使用 AES)对密码进行加密,将密码存储在我的服务器上。将密钥保存在非常安全的地方。以纯文本形式存储密码(如您所述)是一种严重的罪行,将它们存储在双向加密下只会好一点。最佳实践是使用带盐的单向哈希。

于 2013-04-02T03:21:53.813 回答
1

重申其他人所说的话:不要将任何人(包括您自己的)贝宝密码存储在您的网站上(在代码本身或数据库中)。

但是,可以将宝集成到您的网站并使用他们的集成 API读取您自己的贝宝余额。自从我使用 paypal API 以来已经有很长时间了,但我知道这是可能的。您可以使用Transactional Information API通过 GetBalance 调用简单地获取帐户的贝宝余额。为此,您需要设置一个 paypal 开发者帐户,获取一个 API 密钥,并能够从您的 Web 应用程序调用 SOAP API。请参阅此处了解如何开始使用经典的 Paypal API

总而言之,在您自己的个人网页上实现一项功能可能需要做太多的工作。

于 2013-04-02T04:10:57.763 回答