ajax 開發(fā)守則 10條說明
更新時間:2009年07月30日 19:00:12 作者:
介紹ajax開發(fā)十大守則,相信對開發(fā)人員會有用的。
1. 前、后端都要做好安全的把關(guān)工作
不能單靠前端做安全驗證工作,后端也必須有過濾機制,檢驗前方傳來的資料。由于Ajax也會接收后端傳送來的資料,對這些資料都要采取不信任態(tài)度,必須加以檢查。
2. 盡量以HTTP POST方法傳輸資料
使用GET方法容易讓有心人士得到資料,雖然POST并非萬無一失,但比起GET至少較為安全。
3. 不要直接用eval函數(shù)喚起JSON對象
JSON(JavaScript Object Notation)是采用JavaScript對象的資料格式,從后端傳到Ajax程序時,必須採用eval函式將它從字串轉(zhuǎn)成對象,這時必須先行檢查資料中是否有非法字符,以免非法程序借機啟動。
4. 限制使用者可用的HTML語法
許多Ajax網(wǎng)站允許使用者在留言中使用HTML語法,而某些特定語法應(yīng)該嚴格限制,例如<plaintext>或是<!- -這類語法,都會讓置于之后的程序代碼失效。
5. 禁止可留言的網(wǎng)頁頁面使用JavaScript語法
雖然乍看之下覺得不可思議,不過的確在一些論壇平臺上發(fā)生過,這給XSS攻擊開了大門。
6. 使用Ajax框架,必須注意安全性問題
由于駭客利用JavaScript進行攻擊手法日新月異,當網(wǎng)頁開發(fā)人員利用Ajax框架時,必須注意框架本身是否對某些特定手法具有防治行為。
7. 讓用戶知道自己身處的狀況
當Ajax載入資料量大時,有時會讓使用者產(chǎn)生錯覺,不確定剛剛按下的按扭是否發(fā)生作用。因此開發(fā)人員必須設(shè)計適當?shù)奶崾?,讓使用者了解目前程序的?zhí)行狀況。
8. 保持小量傳輸
Ajax的靈活性在于動態(tài)改變局部資料量,因此小量傳輸資料才能達到最高效益。如果一大張資料表都要透過DOM的操作來改變,不如就由后端程序與資料庫來操作,效益更高。
9. 注意易用性與內(nèi)容的平衡
Ajax雖然為使用者帶來瀏覽時的易用性,不過如果將所有內(nèi)容都透過Ajax來產(chǎn)生,會造成搜索引擎無法索引資料的情況。因此與內(nèi)容相關(guān)的部分,需謹慎使用Ajax。
10. 執(zhí)行優(yōu)雅降級原則
網(wǎng)站不要全面性採用Ajax技術(shù),而只是局部增加互動性,這時必須考量不支持JavaScript的使用者,設(shè)法在不使用這些功能的前提下,讓他們還能正常地瀏覽網(wǎng)站。
不能單靠前端做安全驗證工作,后端也必須有過濾機制,檢驗前方傳來的資料。由于Ajax也會接收后端傳送來的資料,對這些資料都要采取不信任態(tài)度,必須加以檢查。
2. 盡量以HTTP POST方法傳輸資料
使用GET方法容易讓有心人士得到資料,雖然POST并非萬無一失,但比起GET至少較為安全。
3. 不要直接用eval函數(shù)喚起JSON對象
JSON(JavaScript Object Notation)是采用JavaScript對象的資料格式,從后端傳到Ajax程序時,必須採用eval函式將它從字串轉(zhuǎn)成對象,這時必須先行檢查資料中是否有非法字符,以免非法程序借機啟動。
4. 限制使用者可用的HTML語法
許多Ajax網(wǎng)站允許使用者在留言中使用HTML語法,而某些特定語法應(yīng)該嚴格限制,例如<plaintext>或是<!- -這類語法,都會讓置于之后的程序代碼失效。
5. 禁止可留言的網(wǎng)頁頁面使用JavaScript語法
雖然乍看之下覺得不可思議,不過的確在一些論壇平臺上發(fā)生過,這給XSS攻擊開了大門。
6. 使用Ajax框架,必須注意安全性問題
由于駭客利用JavaScript進行攻擊手法日新月異,當網(wǎng)頁開發(fā)人員利用Ajax框架時,必須注意框架本身是否對某些特定手法具有防治行為。
7. 讓用戶知道自己身處的狀況
當Ajax載入資料量大時,有時會讓使用者產(chǎn)生錯覺,不確定剛剛按下的按扭是否發(fā)生作用。因此開發(fā)人員必須設(shè)計適當?shù)奶崾?,讓使用者了解目前程序的?zhí)行狀況。
8. 保持小量傳輸
Ajax的靈活性在于動態(tài)改變局部資料量,因此小量傳輸資料才能達到最高效益。如果一大張資料表都要透過DOM的操作來改變,不如就由后端程序與資料庫來操作,效益更高。
9. 注意易用性與內(nèi)容的平衡
Ajax雖然為使用者帶來瀏覽時的易用性,不過如果將所有內(nèi)容都透過Ajax來產(chǎn)生,會造成搜索引擎無法索引資料的情況。因此與內(nèi)容相關(guān)的部分,需謹慎使用Ajax。
10. 執(zhí)行優(yōu)雅降級原則
網(wǎng)站不要全面性採用Ajax技術(shù),而只是局部增加互動性,這時必須考量不支持JavaScript的使用者,設(shè)法在不使用這些功能的前提下,讓他們還能正常地瀏覽網(wǎng)站。
相關(guān)文章
ajax請求攜帶自定義請求頭header(跨域和同域)案例實戰(zhàn)教程
這篇文章主要介紹了ajax請求攜帶自定義請求頭header(跨域和同域)案例實戰(zhàn)教程,ajax請求是有同源策略的,雖然可以應(yīng)用CORS等手段來實現(xiàn)跨域,但是這并不是說這樣就是“同源”了,本文給大家介紹的非常詳細,需要的朋友可以參考下2023-10-10
FormData+Ajax實現(xiàn)上傳進度監(jiān)控
FormData類型其實是在XMLHttpRequest 2級定義的,它是為序列化表以及創(chuàng)建與表單格式相同的數(shù)據(jù)(當然是用于XHR傳輸)提供便利。接下來通過本文給大家分享FormData+Ajax實現(xiàn)上傳進度監(jiān)控,需要的朋友一起看看吧2017-11-11
Ajax+php數(shù)據(jù)交互并且局部刷新頁面的實現(xiàn)詳解
這篇文章主要給大家介紹了關(guān)于利用Ajax與php數(shù)據(jù)交互并且局部刷新頁面的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。2017-07-07
jquery1.8版本使用ajax實現(xiàn)微信調(diào)用出現(xiàn)的問題分析及解決辦法
這篇文章主要介紹了jquery1.8版本使用ajax實現(xiàn)微信調(diào)用出現(xiàn)的問題分析及解決辦法的相關(guān)資料,需要的朋友可以參考下2015-11-11
ajax獲得json對象數(shù)組 循環(huán)輸出數(shù)據(jù)的方法
今天小編就為大家分享一篇ajax獲得json對象數(shù)組 循環(huán)輸出數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
基于Spring Boot利用 ajax實現(xiàn)上傳圖片功能
這篇文章主要介紹了Spring Boot利用 ajax實現(xiàn)上傳圖片功能,本文圖文實例相結(jié)合,給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11

