2011-08-09 169 views
2

從javascript調用Web服務時添加認證/安全性的最佳方式是什麼?
我希望我的web服務只能從我的應用程序中調用,任何人都不應該通過將web服務URL複製到瀏覽器來訪問我的web服務。從Javascript調用Web服務

從前幾個答案看來,它似乎是不可能的。
那麼我應該回復我的客戶,因爲他不知道這個詞不可能?

〜Ajinkya。

+0

鹽,令牌,密碼?你能解釋更多關於你如何訪問'服務'的信息嗎? – Calum

+0

@Calumn:我正在使用我的Web服務進行YUI自動完成。我只是將我的Web服務URL提供給YUI自動完成。 – xyz

回答

1

這是不可能的。如果您允許客戶端通過JavaScript訪問您的Web服務,客戶端將始終可以做到這一點。您只能通過使用某種約束來減少訪問,例如需要與請求一起發送的令牌,以便對其進行驗證。你甚至可以把它變成一次性的標記。但是這會產生新的問題(例如,如果答案丟失會發生什麼情況,客戶端javascript無法重新運行查詢)。

+0

@nfecher:有什麼我們可以通過將Web服務URL複製到瀏覽器來防止任何人訪問服務? – xyz

+0

不,不是真的。此外:因爲你允許客戶訪問webservice,任何這樣的預防只會是[蛇油](http://en.wikipedia.org/wiki/Snake_oil_%28cryptography%29)。 – nfechner

+0

感謝您的建議。這是否意味着所有通過JAva腳本使用的Web服務都可以訪問? – xyz