2010-01-02 100 views
2

我需要安全地认证第三方网站的SSL REST API调用。我的API调用部分正在工作,但我想将第三方凭据保存在我的应用引擎数据存储中,或者也许在其他地方?我不知道我该怎么做。GAE认证到第三方网站

的SSL调用看起来像:

credentials = base64.encodestring('%s:%s' % (username, password))[:-1] 
request  = urllib2.Request(accounts_url) 
request.add_header("User-Agent", user_agent) 
request.add_header("Authorization", "Basic %s" % credentials) 

stream = urllib2.urlopen(request) 
response = stream.read() 
stream.close() 

这意味着我的应用程序不幸的是需要知道的明文密码。对我来说AES加密并不合理(不是散列可逆的),因为我的应用程序也需要知道解密密钥,所以如果我的应用程序受到威胁,则不会增加存储明文的实际安全性。

+0

“希望最好”是什么意思?你担心/想要预防哪些场景/问题? – 2010-01-02 05:54:37

+0

我相信他担心如果有人访问他的数据存储,他们也可以访问第三方网站。 – 2010-01-02 06:04:11

+1

我所知道的是,安全让我害怕,我不知道我需要担心什么。如果我的应用程序有漏洞证书漏洞怎么办?谷歌搜索“第三方认证”等搜索没有发现任何有用的东西。 – 2010-01-02 06:14:20

回答

2

我认为这里最安全的策略就是踢给客户。使用GAE作为代理,否则会成为来自客户端的跨域请求。我假设第三方主机有一些令牌或会话cookie,您可以在返回时截取。

存储明文密码是可怕的。