2010-10-26 81 views
0

我對閃存和其他Web技術的瞭解並不是那麼好,但我想知道,具有自己的應用程序API(例如Facebook)的站點如何驗證應用程序的調用?我並不熟悉Facebook API,但Vkontakte(類似網站)使用密鑰,會話ID和方法參數來生成查詢。爲什麼不可能讓有惡意的人在應用程序運行時計算出這些參數,並通過改變數據包發送完全不同的查詢?我有點計劃爲Vkontakte編寫應用程序,但我不明白應用程序如何受到保護。如果有人能夠向我推薦關於這些問題的任何文獻,我也將非常感激。應用程序調用認證

回答

3

安全性在於您的共享祕密不應該通過網絡傳輸。例如,使用Facebook,您可以使用自己的應用密碼驗證服務器上的cookie。如果您沒有在服務器上進行任何驗證,那麼訪問令牌或任何不安全的東西都是正確的。但是,要記住的是,在這些網站中,訪問令牌與單個用戶相關聯。所以,即使該人更改了Cookie或任何訪問令牌仍然只有訪問單個Facebook帳戶的權限。所以這個人會爲自己的帳戶做惡意的東西。

因此,對於flash或javascript的情況,您總是假設訪問令牌和cookie數據不安全。只有在您驗證Cookie數據以確保Cookie來自合法來源之後,您才需要在服務器上執行任何對安全至關重要的事情。我假設vkontakte的功能非常類似。

再一次,最重要的是永遠不要在您的服務器之外傳輸您的密鑰。