2015-06-23 137 views
0

我使用AngularJS + BootStrap和REST編寫了一個用於學習目的的webapp(電子商務)。 我已經使用Apache Wink for REST WS,並且應用程序部署在JBoss EAP 6.4上。我的應用程序工作正常。REST API安全性JBoss EAP 6.4

我可以使用AJAX訪問後端數據,網頁正常填充正確。問題是REST WAS的安全性。如果我直接在瀏覽器上使用REST URL,而無需通過前端,則JSON數據將被填充並顯示我的數據。我應該做什麼樣的設計更改?

請注意,在網站上的初始操作,例如,瀏覽產品,將它們添加到購物車等都是無國籍的。這些操作不需要用戶身份。我仍然需要確保我的數據用於這些交互。請建議,我該怎麼做。

蘇尼爾

回答

0

如果你想鎖定的服務,你可能需要一些類型的身份驗證(例如用戶名/密碼)返回一個安全令牌(通過HTTPS)。然後所有後續的函數調用都可能要求將安全令牌作爲參數傳入(如果該操作非常敏感)。令牌將需要會話超時。

但是,如果數據也公開顯示在網站上,那麼本身並沒有真正的安全風險。 IOW,這與使用公共網站獲取/更新數據的方式有何不同?其餘的服務通常不應該要求超出網站已經使用的保護數據的額外安全等級。

+0

感謝您的回覆。即使沒有用戶的身份要求,我也會參考Spring Security教程,它可以確保資源的安全。 https://spring.io/guides/tutorials/spring-security-and-angular-js/#add-a-home-page .....我們可以這樣做嗎?我當然可以使用安全令牌來確保用戶特定的其他重新鏈接,但無法找到保護其他WS呼叫的方法。 – Sunil

+0

如果您不想要求用戶提供的身份,則可以使用類似的相同概念,但從服務器端提供憑證。例如:服務器端函數調用getRandomToken()並將其設置在已驗證的會話中。然後將這個令牌放在網頁中作爲一個javascript變量(服務器端)。然後這個令牌可以傳回所有後續的調用並與會話令牌進行比較。我認爲所有的方法都將圍繞使用一些共享的祕密。 –