我需要安全地向第三方站点进行身份验证以进行SSL REST api呼叫。我有API调用部分工作,但我想在我的应用引擎数据存储区中保存第三方凭据,或者可能在其他地方?我不知道我该怎么做。
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 :(得分:2)
我认为这里最安全的策略是向客户提供支持。使用GAE作为来自客户端的跨域请求的代理。我假设第三方主机有某种令牌或会话cookie,你可以在回来的路上拦截。
存储纯文本密码很可怕。