paypal rest api凭据可能存在安全问题?

paypal rest api凭据可能存在安全问题?,paypal,paypal-rest-sdk,Paypal,Paypal Rest Sdk,根据java SDK中的示例: clientID、clientSecret是从sdk_config.properties文件中检索的,它们作为纯文本驻留在该文件中。 e、 g.java SDK附带的属性文件: # Connection Information http.ConnectionTimeOut=5000 http.Retry=1 http.ReadTimeOut=30000 http.MaxConnection=100 # HTTP Proxy configuration # I

根据java SDK中的示例:

clientID、clientSecret是从sdk_config.properties文件中检索的,它们作为纯文本驻留在该文件中。 e、 g.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通信的服务器上的某个位置,以使事务正常工作。您不希望将
clientSecret
共享给外部世界,因此,您当然不希望通过任何公共web端点访问此文件


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

嗨,Jeff,我的意思是,当我们想要保护敏感数据(例如密码)时,我们会对它们进行散列,然后将它们保存到数据库中。这里的敏感数据是纯文本的,任何可能访问此配置文件的人都可以代表此paypal帐户执行操作。是的,您希望只允许受信任的开发人员或操作人员访问此机密。这取决于您创建一个合理的部署过程,在这个过程中,这个秘密不会暴露给不受信任的个人。如果凭据被泄露,你可以随时删除developer.paypal.com上的应用程序,然后创建一个新的应用程序。这是一种有点奇怪的方法,因为对于密码(正在被散列),即使某个黑客成功获得了它,对他来说也毫无意义,因为它被散列了。但是在这里,它仍然是纯文本,所以如果它被黑客攻击,敏感数据可以按原样使用。