2011-07-10 74 views
3

我正在構建基於AJAX的Web應用程序。保護基於AJAX的Web應用程序

我目前的情況下,任何人都可以建立一個服務器端的代理程序,它連接到我的Web應用程序服務器與適當的請求,並只顯示Web應用程序的結果給用戶,而實際上我的應用程序的數據,我怎樣才能防止這樣只有我的網站的訪問者才能夠獲取數據?

我想過使用Facebook API,只讓有Facebook帳戶的請求登錄到我的網站。

是否有關於此問題的其他提示? 是否有任何有關基於ajax的Web應用程序的保護技術的源代碼或教程?

回答

2

我曾經讀過一段非常真實的聲明:「AJAX安全性不是巫術 - 原則上同樣的技術也適用於'普通'web應用程序。只有一個大問題:大多數人忘記了任何人都可以在他們的瀏覽器地址欄中輸入您用於寶貴的AJAX界面的網址「。這個陳述的要點最好在一個例子中解釋。

假設您的應用中有一個管理員部分,這非常安全。但是現在一個非常常見的錯誤是開發人員認爲頁面本身的安全性自動意味着這些頁面上的AJAX調用也是安全的。所以他們不關心保護他們,並通過簡單的HTTP來回發送呼叫,根本沒有認證。

這絕對是默默無聞的安全措施,但是一旦有人想出了界面,他們將通過直接訪問AJAX界面並簡單跳過管理部分的安全措施來訪問數據。搞清楚界面可以簡單地通過猜測來完成。

一個好主意是爲頁面本身和由它發出的所有AJAX調用使用TLS/SSL。接下來,您需要某種形式的身份驗證,無論是無狀態的(每次都發送憑據 - 但這需要後端每次都檢查它們),還是通過建立會話令牌進行有狀態化。 OWASP有很多關於這個和其他主題的背景信息。

+0

太棒了,如果你有更多關於驗證方式的資料,請多多諒解。 另外,我可以在哪裏獲得有關在ajax請求上應用SSL的一些信息? –

+0

如果你有興趣,你可以閱讀這本書[http://www.amazon.com/Ajax-Security-Billy-Hoffman/dp/0321491939/ref=sr_1_1?ie=UTF8&qid=1310307447&sr=8-1 )。 AJAX上的SSL與任何頁面上的SSL完全相同 - 您在服務器上部署證書/密鑰(通常爲PKCS#12文件)並進行適當配置。然後你打電話給https URL而不是http - 就這麼簡單。 – emboss