[英]Offer some REST API resources for specified clients
我認為我們沒有解決問題的方法,但是為了確認我想在這里問您。
我們有REST API,它用於:
由於來自管理/客戶網站的請求是由AngularJS在客戶端發出的,因此用戶能夠(例如通過FireBug)確定資源URL,並能夠從自己的應用程序中使用所有這些資源-我們不希望這樣做,而我們不能用IP地址來限制它,因為請求來自客戶端。 我們只想為客戶/管理網站提供一些資源,為自己的REST API客戶端提供一些資源,為這兩者提供一些資源,但是根據AngularJS發出的JS請求的原理(以及資源URL可見性),它是不可能做到的( ?)。
此問題的最佳做法是什么?
注意:您的REST資源應始終安全。 您永遠不應依賴任何客戶端javascript代碼。 如果由於有人知道 REST API的URI而破壞了安全性; 出事了 。
可以將Angular模塊化,客戶只能看到客戶模塊,而管理員可以看到客戶和管理員模塊。 這樣,您可以讓管理員在所見即所得的環境中工作,而無需他們在網站之間來回切換。
// Customers.js
// Module only containing customer code
angular.module('myCustomerProducts', ['myMainApp']);
// Administrators.js
// Module only containing administrator code
angular.module('myEditCustomerProducts', ['myCustomerProducts', 'myMainApp']);
由於您的網站已經被管理員和客戶分開,因此您僅可以包括和部署指定目標網站的javascript代碼。 如果不是這種情況,則需要一些服務器端轉換(例如ASP.NET,PHP,Jade等),以便根據用戶的憑據動態構建index.html。 根據托管平台,在從管理員網站(區域)請求任何內容時,您也可以拒絕對不在管理員組中的所有人的訪問。
但是又 服務器端安全性更有價值。 您無法使用javascript(在客戶端)保護不安全的服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.