【问题标题】:paypal rest api credentials possible security issue?paypal rest api 凭证可能的安全问题?
【发布时间】:2013-11-17 09:31:55
【问题描述】:

根据java SDK中的例子:

https://github.com/paypal/rest-api-sdk-java

clientID、clientSecret 是从 sdk_config.properties 文件中检索的,它们以纯文本形式驻留在该文件中。 例如java SDK自带的属性文件:

# Connection Information http.ConnectionTimeOut=5000 http.Retry=1 http.ReadTimeOut=30000 http.MaxConnection=100 # HTTP Proxy configuration # If you are using proxy set http.UseProxy to true and replace the following values with your proxy parameters http.ProxyPort=8080 http.ProxyHost=127.0.0.1 http.UseProxy=false http.ProxyUserName=null http.ProxyPassword=null #Set this property to true if you are using the PayPal SDK within a Google App Engine java app http.GoogleAppEngine = false # Service Configuration service.EndPoint=https://api.sandbox.paypal.com # Live EndPoint # service.EndPoint=https://api.paypal.com # Credentials clientID=EBWKjlELKMYqRNQ6sYvFo64FtaRLRR5BdHEESmha49TM clientSecret=EO422dn3gQLgDbuwqTjzrFgFtaRLRR5BdHEESmha49TM

这不是安全问题吗? 是否有更好的替代方法来存储这些凭据?

提前致谢。

【问题讨论】:

    标签: paypal paypal-rest-sdk


    【解决方案1】:

    Jeff 来自 PayPal。我想知道您对安全问题的担忧是什么,因此我可以更具体地解决它们。我会解决我认为您担心的问题。

    这些凭据需要位于与 PayPal 通信的服务器上的某个位置,交易才能正常进行。您不想将clientSecret 分享给外部世界,因此您当然不希望通过任何公共网络端点访问此文件。

    如果您担心您的开发人员或操作人员会访问此机密,那么我可能会建议实施一个部署过程,其中生产机器仅对选定的一组受信任的人可见,并填充正确的凭据集仅在部署时在此文件中。

    【讨论】:

    • 嗨 Jeff,我的意思是当我们想要保护敏感数据时,例如密码,我们对它们进行哈希处理,然后将它们保存到数据库。这里的敏感数据是纯文本格式,任何可能访问此配置文件的人都可以代表此 paypal 帐户执行操作。
    • 是的,您只需要允许受信任的开发人员或运营人员访问该机密。您可以创建一个合理的部署过程,其中该秘密不会暴露给不受信任的个人。如果凭据被泄露,您可以随时在 developer.paypal.com 上删除该应用,然后创建一个新应用。
    • 这是一种有点奇怪的方法,因为在密码(正在被散列)的情况下,即使某些黑客成功获得它,它对他来说也毫无意义,因为它已经被散列了。但在这里,它仍然是纯文本,所以如果它被黑客入侵 - 敏感数据可以按原样使用。
    猜你喜欢
    • 1970-01-01
    • 2013-09-06
    • 2013-03-28
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2018-02-17
    相关资源
    最近更新 更多