使用 JQuery 呼叫 Web 服務時可能存在哪些威脅以及如何避免它們?
我知道這個問題可能過於籠統,但為了縮小問題範圍,這裡有一個簡短的描述:
我打算忘記
ASP.net UpdatePanel並通過 JQuery 使用 ajax。我擔心由於 JavaScript(以及因此 JQuery 程式碼)的簡單客戶端性質,任何查看我網頁原始碼的人都可以意識到我正在呼叫的 Web 服務的 URL 是什麼以及正在傳遞什麼到那些網路服務。當
UpdatePanel用於這些類型的操作時,我確信呼叫 Web 服務是在伺服器端完成的,並且我不擔心有關呼叫敏感 Web 服務的資訊被公開暴露的問題,但現在我計劃通過 Ajax 使用JQuery,它讓我很擔心。我的擔憂是否合理,如果屬實,避免暴露 web-service-calling-info 威脅的最佳解決方案是什麼?
**澄清:**當說 UpdatePanel 時,我的意思是利用一系列技術,包括 ASP.net AJAX、程式碼隱藏和依賴伺服器端 Dll 來執行非同步伺服器端操作,而不是需要 Web 服務來吸引伺服器的 jquery Ajax。
網際網路上無法通過隱藏 URL 來始終保護您的 Web 服務。我不確定當您說您的更新面板從伺服器呼叫 Web 服務時,您並沒有獲得 AJAX 的真正威力。
保護 Web 服務的一種方法是在 Web 服務端使用身份驗證。例如,您每次訪問源時都需要發送一些身份驗證密鑰,這很常見,您有很多公共 Web 服務使用身份驗證密鑰(如 OpenId 實現)自我保護。如果您不想更改 Web 服務邏輯,我認為 AJAX 的 jquery 方式不是一個安全的選擇。
這是一個想法,您可以擁有兩個級別的 Web 服務,一個將為您可以在 jquery 中使用的所有內容打開。從目前的 Web 服務,從伺服器端呼叫另一個安全的 Web 服務。即使是現在,您也可以為某些特定機器 IP 配置傳入請求。
在這種情況下,除了您自己的伺服器之外,其他任何人都無法訪問安全地保存在防火牆後面的 Web 服務。這與我們從應用程序伺服器連接到數據庫伺服器時所做的類似。
讓我知道這是否有幫助。