2016-12-03 82 views
0

我有一个使用REST API的Web应用程序。部分API将供公众使用。有很多情况下API端点是专门为与Web应用程序一起构建的,例如为用户收集个人身份信息,而且我不希望该端点可供公众使用。我该如何去确保只有应用程序才会使用的特定端点?限制对特定REST API端点的公共访问

回答

0

您可以通过阻止公共访问的特定路径从Web服务器获得帮助。这样你就不必触碰你的源代码。

例如,如果你使用nginx的,则:

location /private-api { 
    allow my.trusted.ip.address; 
    deny all; 
} 

这里一个关于如何使用apache

1

一种常见的方法来做到这一点的讨论,以确保私人端点与令牌。调用者需要提供访问令牌才能执行它,否则他将收到错误消息。

我会推荐使用兼容协议来生成令牌,以便人们可以使用现有的框架来申请它们。

+1

^^正确观察像@Erik所述的Oauth状态。查看Facebook的Graph API以及该RESTful服务如何利用令牌来充当各种用户登录。这使FB账户/开发者的所有者能够利用GET,PUT,DELETE功能来更新.com以外的其他应用程序以及其他应用程序中的状态。 – Illdapt