首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >保护REST API和超薄框架

保护REST API和超薄框架
EN

Stack Overflow用户
提问于 2012-10-30 21:01:38
回答 1查看 18.3K关注 0票数 18

我是REST API的新手,我意识到已经发布了相当多的问题。然而,仔细阅读这些内容实际上让我对如何处理这个问题感到更加困惑。

我已经使用Slim Framework创建了一个REST API,我只是用它来传输数据。我不会使用用户登录或身份验证,所以我相信为了确保安全,我只需要一个使用公钥和私钥的系统,但我就是不确定。

如果任何人对正确/最安全的方法有见解,或者任何教程/资源,那将是很棒的。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-31 03:33:58

您可以使用SSL对传输中的数据进行加密。

但SSL只是加密;服务器端ssl既不对客户端进行身份验证,也不进行授权。您可以将授权看作是在回答调用者是否允许执行他所要求的操作?Authentication建立调用者的身份或身份验证通常是进行授权的必要第一步。有时你不需要“整个身份”--你只需要确定一个特定的方面。例如,自动洗手间门不需要知道你是谁,但只有当你是男性或女性时才能确定身份。同样,一些服务并不关心您是谁;如果您从特定网络(ip白名单)进行呼叫,或者如果您携带特殊令牌,它们将允许访问。

要允许服务器区分授权和未经授权的呼叫,您有一些选项:

  • IP白名单。如果您知道将调用您的服务的应用程序或代理的IP地址,则可以在您的服务实现中指定该地址。该服务可以检查传入请求的IP,并拒绝不在白名单上的请求。这是一种基于调用者地址的“隐式”授权。
  • 是应用程序在每次调用中提供的一个秘密令牌。您说您不想进行身份验证,但这只是一种身份验证形式。你可以称它为“持有者令牌”。任何持有此令牌的人都将获得授权。在您的服务器中,您将检查令牌的值,并拒绝任何与众所周知的值不匹配的调用。这与IP白名单非常相似,只是令牌是显式传递的,与网络地址没有任何关系。
  • 令牌+密钥对。这类似于用户名/密码,但可用于对应用程序进行身份验证。使用此选项提供应用程序本身的标识。如上所述,检查服务端。
  • a用户名/密码。对应用程序的用户进行身份验证。

您可能希望将这些组合在一起,以生成您想要的解决方案。换句话说,客户端请求需要来自正确的I地址,并且需要有应用程序的令牌/密钥,以及用户的用户名/密码,才能被认为是“授权的”。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13139576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档