2016-12-03 111 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