1. 前、後端都要做好安全的把關工作
不能單靠前端做安全驗證工作,後端也必須有過濾機制,檢驗前方傳來的資料。由於Ajax也會接收後端傳送來的資料,對這些資料都要採取不信任態度,必須加以檢查。
2. 盡量以HTTP POST方法傳輸資料
使用GET方法容易讓有心人士得到資料,雖然POST並非萬無一失,但比起GET至少較為安全。
3. 不要直接用eval函數喚起JSON對象
JSON(JavaScript Object Notation)是採用JavaScript對象的資料格式,從後端傳到Ajax程式時,必須採用eval函式將它從字串轉成對象,這時必須先行檢查資料中是否有非法字元,以免非法程式藉機啟動。
4. 限制使用者可用的HTML文法
許多Ajax網站允許使用者在留言中使用HTML文法,而某些特定文法應該嚴格限制,例如<plaintext>或是<!- -這類文法,都會讓置於之後的程式碼失效。
5. 禁止可留言的網頁頁面使用JavaScript文法
雖然乍看之下覺得不可思議,不過的確在一些論壇平台上發生過,這給XSS攻擊開了大門。
6. 使用Ajax架構,必須注意安全性問題
由於駭客利用JavaScript進行攻擊手法日新月異,當網頁開發人員利用Ajax架構時,必須注意架構本身是否對某些特定手法具有防治行為。
7. 讓使用者知道自己身處的狀況
當Ajax載入資料量大時,有時會讓使用者產生錯覺,不確定剛剛按下的按扭是否發生作用。因此開發人員必須設計適當的提示,讓使用者瞭解目前程式的執行狀況。
8. 保持小量傳輸
Ajax的靈活性在於動態改變局部資料量,因此小量傳輸資料才能達到最高效益。如果一大張資料表都要透過DOM的操作來改變,不如就由後端程式與資料庫來操作,效益更高。
9. 注意易用性與內容的平衡
Ajax雖然為使用者帶來瀏覽時的易用性,不過如果將所有內容都透過Ajax來產生,會造成搜尋引擎無法索引資料的情況。因此與內容相關的部分,需謹慎使用Ajax。
10. 執行優雅降級原則
網站不要全面性採用Ajax技術,而只是局部增加互動性,這時必須考量不支援JavaScript的使用者,設法在不使用這些功能的前提下,讓他們還能正常地瀏覽網站。