存储API令牌,用户/传递等的位置

时间:2015-04-23 19:47:41

标签: api token credentials

所以我有一个网页。该网页使用基本身份验证,oAuth,摘要等访问API。我必须通过某种身份验证将API端点发送到另一个服务。让我们假装它是Facebook OpenGraph API。

为了使用它的API,Facebook向我发出了凭据。我在哪里存储这些凭据以免受外部攻击?我总是把它们放在我的服务器端代码中,就像API文档告诉你的那样。那够安全吗?我并不担心内部滥用,我担心外部攻击。

我在哪里放置我的Web应用程序身份验证凭据,用于访问可以免受外部攻击的其他服务?

2 个答案:

答案 0 :(得分:1)

看到使用其他几种服务的mashup变得越来越受欢迎。但不幸的是,你真的无法将这些凭据放在一个实际的地方,在那里他们完全免受外部攻击。以下是一些选项:

  1. 将它们保存在源代码中。攻击者可以通过错误配置服务器来访问源代码,这是服务器软件的一个弱点。或者(s)他可以访问服务器上的文件系统或拦截服务器和Facebook之间的网络流量。
  2. 将它们保存在服务器外部的数据库中。但是,您在哪里保留数据库的凭据,以便您的代码可以访问它?您只是将问题转移到另一组凭据,如果数据库可以在本地网络外部访问,则实际上增加了攻击面。
  3. 将它们保存在服务器上的文件中。现在,攻击者必须访问文件系统或拦截网络流量。所以这比以前的选项更安全。

答案 1 :(得分:0)

如果您担心外部攻击且完全没有安全感,则不应将凭据存储在应用中。将凭据存储在服务器上。您的应用程序应在需要进行身份验证时提示用户提供凭据。

验证后,如果要保留用户的登录状态,请设置cookie,会话cookie在浏览器会话结束时过期或永久cookie不会过期。