非同步Javascript和XML(AJAX)是用於開發Web應用程式以提供豐富用戶體驗的最新技術之一。由於它是一項新技術,因此尚未完成許多安全問題,以下是AJAX中的少數安全問題。
- 攻擊面更多,因為需要保護更多輸入。
- 它還公開了應用程式的內部功能。
- 無法保護身份驗證資訊和會話。
- 客戶端和服務器端之間存在非常狹窄的界限,因此存在安全性錯誤的可能性。
示例
以下是AJAX安全性的示例 -
2006年,蠕蟲感染了使用XSS和AJAX的雅虎郵件服務,利用了Yahoo Mail onload事件處理中的漏洞。當受感染的電子郵件被打開時,蠕蟲會執行其JavaScript,將副本發送給受感染用戶的所有Yahoo聯繫人。
動手實踐
第1步 - 我們需要嘗試使用XML注入為您允許的獎勵集添加更多獎勵。如下圖所示 -
第2步 - 確保使用Burp Suite。設置如下圖所示 -
第3步 - 輸入方案中給出的帳號。我們將能夠獲得帳號獲得所有獎勵列表。我們有資格獲得5個獎勵。
第4步 - 現在我們點擊“提交”,看看在回應XML中得到了什麼。如下所示,我們有資格獲得的三個獎勵將作為XML返回。
第5步 - 現在編輯XML並添加其他兩個獎勵。
第6步 - 現在將向用戶顯示所有獎勵以供他們選擇。選擇我們添加的那些,然後單擊“提交”。
第7步 - 出現以下消息:“* Congratulations. You have successfully completed this lesson.”
預防機制
客戶端 -
- 使用
.innerText
而不是.innerHtml
。 - 不要使用eval。
- 不要依賴客戶端邏輯來提高安全性。
- 避免編寫序列化代碼。
- 避免動態構建XML。
- 切勿將加密資訊傳遞給客戶。
- 不要在客戶端代碼中執行加密。
- 不要在客戶端執行安全性影響邏輯。
伺服器端 -
- 使用CSRF保護。
- 避免編寫序列化代碼。
- 用戶可以直接調用服務。
- 避免手動構建XML,使用框架。
- 避免手動構建JSON,使用現有框架。
上一篇:
未經驗證的重定向和轉發
下一篇:
Web Service安全