Ajax 應用程序內(nèi)部的某些安全漏洞會導致惡意黑客嚴重危害您的應用程序。身份竊取、對敏感信息進行未受保護的訪問、瀏覽器崩潰、Web 應用程序破壞、拒絕服務攻擊等等,這僅是 Ajax 應用程序可能發(fā)生的安全事件的一部分,而開發(fā)人員在將 Ajax 功能構(gòu)建到應用程序時需要預防這些安全問題。developerWorks 定期撰稿人 Judith Myerson 推薦了一些可以增強應用程序的工具,包括 Firefox 工具和增件,這些工具可以改善或解決 Ajax 應用程序內(nèi)的安全問題。
簡介
在這篇文章中,您將了解一些 Ajax 安全工具,并使用它們掃描 SQL 注入和跨站點腳本漏洞、設置主密碼,并在發(fā)生崩潰后恢復所有窗口的狀態(tài)。您將查看一些工具和實用程序,確保應用程序中鏈接的站點沒有出現(xiàn)在黑名單中,這個黑名單能夠阻止黑客修改瀏覽器功能、危害 Web 應用程序以及實現(xiàn)惡意目的。本文將這些實用程序分為三大類:增強工具、Firefox 工具和 Firefox 增件。
增強工具
本節(jié)介紹以下幾種工具:Ajax Secure Service Layer(aSSL)工具可以保護聊天和博客;HTMLProctector 用于阻止訪問者竊取 Ajax Web 頁面的源代碼和圖像;而 Acunetix Web Vulnerability Scanner 用于掃描并修復由 SQL 注入和跨站點腳本引起的問題。當您在自己的 Ajax 頁面中鏈接其他 Web 站點時,使用 AjaxDNS 工具確保這些鏈接沒有出現(xiàn)在 Web 站點的黑名單中(考慮使用 Despoof,一個開源的命令行反欺騙檢測程序,可以檢測所有 IP 欺騙方法。
aSSL
aSSL 是在 MIT 許可下發(fā)布的一種庫,是 SSL 的開源的 Ajax 版本,沒有附帶 HTTPS。由于對 HTTP 進行安全保護,瀏覽器中的 aSSL 無法像 SSL 那樣檢查 SSL 證書。相反,aSSL 使用 RSA 算法使客戶機能夠通過一個或多個服務器處理隨機的 128 bit 密匙。建立連接之后,Ajax 工具使用 AES 算法發(fā)送和接收數(shù)據(jù)。aSSL 更適合保護非關(guān)鍵性站點,比如通過防火墻的聊天和博客站點,因為這些站點不需要 SSL 證書。
aSSL 在瀏覽器調(diào)用服務器時開始保護過程。服務器接收到調(diào)用之后,它將它的 RSA 模數(shù)(modulus)返回。接著,瀏覽器生成一個隨機的 128 bit 交換密匙,使用服務器的公共匙進行加密,并將加密后的交換密匙傳遞給服務器。服務器接接收加密交換密匙并使用其私有密匙進行解密。最后,瀏覽器接收會話持續(xù)時間并設置一個超時以保持連接處于活躍狀態(tài)。
HTMLProtector
該工具超越了防火墻功能,可以幫助您保護在服務器上運行的 Web 站點的內(nèi)容。在向服務器發(fā)送受保護的 Web 頁面時,您可以在客戶端決定對哪些內(nèi)容進行保護。HTMLProtector 可以幫助您完成以下任務:
- 阻止訪問者查看并打印您的源代碼。
- 阻止發(fā)送垃圾郵件的機器從您的頁面中提取電子郵件地址,黑客可能會使用這些地址發(fā)送垃圾郵件。
- 阻止訪問者使用自動下載程序?qū)⒛恼麄€ Web 站點下載到他們的硬盤。
- 當訪問者將其鼠標懸停在您的 Web 站點的某個鏈接上時,防止電子郵件鏈接出現(xiàn)在狀態(tài)欄。您可以選擇僅保護頁面的 BODY 部分、HEADER 部分,或者同時保護兩者。
更好的是 HTMLProtector 使您能夠使用密碼保護頁面。只要確保您提供給授權(quán)訪問者的密碼足夠保密,不易被未授權(quán)訪問者破解。如果未授權(quán)的訪問者試圖輸入錯誤的密碼,您可以選擇顯示一個空白頁面、重定向到一個不同的 URL,或者返回到先前的頁面。您還可以禁止瀏覽器將您的頁面保存到本地緩存,從而進一步阻止黑客的破壞。
Acunetix Web Vulnerability Scanner Free Edition
Acunetix Web Vulnerability Scanner(AWVS)Free Edition 工具可以查找應用程序內(nèi)的 SQL 注入和跨站點腳本漏洞,并在執(zhí)行之前修復這些問題(黑客可以利用 SQL 注入漏洞修改 SQL 命令并訪問數(shù)據(jù)庫的數(shù)據(jù)。跨站點腳本攻擊使黑客能夠?qū)阂饽_本嵌入到訪問者的瀏覽器中,然后執(zhí)行該腳本收集數(shù)據(jù))。
Acunetix Web Vulnerability Scanner Free Edition 還對 Web 站點的爬行內(nèi)容啟用黑客 Google 數(shù)據(jù)庫查詢,并識別敏感數(shù)據(jù)或可能被利用的目標。當查詢結(jié)果顯示出可能被利用的數(shù)據(jù)后,請確保在搜索引擎黑客查找并利用這些數(shù)據(jù)之前修復這個問題(請確保在測試環(huán)境而不是生產(chǎn)環(huán)境中進行測試)。
Acunetix 提供的三個高級的滲透測試工具 — HTTP Editor、HTTP Sniffer 和 HTTP Fuzzer — 可以幫助您調(diào)優(yōu) Web 應用程序安全檢查。下面介紹了測試人員使用每種工具可以執(zhí)行的測試:
工具說明
HTTP Editor:構(gòu)建 HTTP/HTTPS 請求并分析 Web 服務器響應。
HTTP Sniffer:攔截 、記錄并修改所有 HTTP/HTTPS 流量并顯示 Web 應用程序發(fā)送的所有數(shù)據(jù)。
HTTP Fuzzer:針對緩沖區(qū)溢出和輸入檢查執(zhí)行復雜的測試。使用規(guī)則構(gòu)建器測試大量的輸入變量。
使用掃描工具可以阻止黑客實現(xiàn)一些惡意目的,例如:
- 身份竊取
- 訪問敏感或受限制的信息
- 免費訪問屬于收費項目的內(nèi)容
- 修改瀏覽器功能
- 危害 Web 應用程序
- 拒絕服務攻擊
- 公開毀壞企業(yè)或個人的聲譽
AjaxDNS Tools
AjaxDNS Tools 可以方便快捷地檢查 Ajax 應用程序中鏈接的 Web 站點的安全性。下面列出并解釋了每種工具的功能:
工具說明
WhoisSearch:獲得與域名所有者相關(guān)的信息,除非禁止查看這些信息。
RBL Search:通過運行 Reputation 和 Block Lists(RBL)在服務器中搜索 Web 站點,并確保 Ajax 應用程序中的鏈接站點不在這些列表中。
Ping:獲得數(shù)據(jù)包到達主機所需時間的信息。如果 ping 無法通過主機的防火墻,則無法到達該主機。
利用命令行選項可以從 Microsoft® 下載 Whois,或者在 Linux®/UNIX® 系統(tǒng)中使用 who 命令。
Despoof
Despoof 是另一種檢測欺騙數(shù)據(jù)包的安全工具,這些欺騙數(shù)據(jù)包能夠跨網(wǎng)絡傳送 Ajax 應用程序。如果收到一個可疑的數(shù)據(jù)包,要嘗試判斷它真正的 Time-to-Live(TTL),并將其與所接收包的 TTL 進行比較。
在使用 Despoof 工具之前,確保您的機器帶有 libpcap 0.4 和 libnet 1.0(或最新版本)。 使用清單 1 中的命令解壓文件,切換到 despoof 目錄,然后安裝 Despoof:
清單 1. 安裝 Despoof
| #tar xvzf despoof*tgz #cd despoof* #gcc 'libnet-config-defines' -o despoof despoof.c -lnet -lpca |
輸入清單 2 所示的命令運行 Despoof:
清單 2. 運行 Despoof
| #. /despoof -h |
Firefox 工具
您可以使用 Firefox 工具設置主密碼和隱私選項。
設置主密碼
您必須輸入一個主密碼才能訪問保存的密碼,以及保存 Web 表單數(shù)據(jù)和密匙。執(zhí)行以下步驟指定新的主密碼:
1.單擊 Tool 菜單下的 Options。
2.在 Options 對話框中的 Security 選項卡下,轉(zhuǎn)到 Passwords 部分。
3.選中選項框以使用主密碼。
4.在 Change Master Password 對話框中,輸入一個新密碼并重新輸入密碼進行確認。
輸入新密碼的每個字符都會看到一些綠色的塊添加到密碼質(zhì)量指示器(password quality meter)。密碼越健壯,指示器顯示的綠色塊越多。如果密碼達到最健壯的級別,那么整個指示器將添滿綠色塊。
當系統(tǒng)確認輸入的密碼匹配,您將看到一個提示成功修改主密碼的消息。(確保記住主密碼,否則無法訪問它保護的任何信息!)
設置隱私選項
讓我們查看一些 cookie 異常并清除隱私數(shù)據(jù)。單擊 Tool 菜單下的 Options,然后轉(zhuǎn)到 Privacy 選項卡。在 Cookie 部分中,您可以接受來自所有或某些來源的 cookie。單擊 Exceptions 指定對哪些 Web 站點經(jīng)常允許使用或絕不允許使用 cookie。輸入需要管理的站點的精確地址并單擊 Block、Allow for Session 或 Allow。完成這些操作后,單擊 Close。
允許 Firefox 接受來自站點的 cookie 時,可以選擇處理它們的方式。這些方式包括:等待直到 cookie 過期、等待直到關(guān)閉 Firefox 或者每次打開時要求 Firefox 進行詢問。
要設置過期日期,請轉(zhuǎn)到 History 部分,并確保默認選擇了允許 Firefox 記住最近 20 天內(nèi)訪問過的頁面的選框。如果您覺得過期時間不合適,可以進行修改。
Firefox 增件
三個非常有用的 Firefox 擴展是 Session Manager(在崩潰后恢復所有窗口的狀態(tài))、Homeland Security Threat Level(在狀態(tài)欄顯示當前級別)和 WiKID(密碼和證書的替代選擇)。
Session Manager
Session Manager 在崩潰后重啟時可以根據(jù)需要或自動地保存和恢復所有窗口的狀態(tài)。它使您能夠重新打開意外關(guān)閉的窗口和選項卡。Session Manager 可以加密保存在會話文件和已關(guān)閉的窗口文件中的會話數(shù)據(jù)。要啟用這個特性,請執(zhí)行以下操作:
1.轉(zhuǎn)到 Tools 下的 Session Manager。
2.單擊 Session Manager Options。
3.在 Encryption 部分中,選擇選框加密已保存和關(guān)閉的窗口。如果設置有主密碼,F(xiàn)irefox 將發(fā)出警告,要求您輸入密碼以加密或解密會話。
4.單擊 OK。
如果 Firefox 崩潰了,它在重啟時會詢問您是否恢復最近的會話。Session Manager 不僅可以恢復當前瀏覽的會話,還能根據(jù)需要恢復其他會話。因此,最好不要禁用 Session Manager Options 對話框 SessionStore 選項卡中的 Crash Recovery。
這個擴展取代了 SessionSaver 和 Tab Mix Plus 的會話管理器。它存儲的數(shù)據(jù)比這兩個程序多。建議您只安裝一個與會話相關(guān)的擴展。
Homeland Security Threat Levels
該擴展將當前的 U.S. Homeland Security Threat Level(Severe, High, Elevated, Guarded, and Low)顯示為狀態(tài)欄的一個圖標,允許您快捷地查看威脅級別。
WiKID
WiKID Strong Authentication System 是一款基于商業(yè)/開源軟件的雙因素身份驗證解決方案。WiKID 旨在成為令牌、證書、密碼的安全替代品。這個 Firefox 擴展使用語義 Web 技術(shù)自動為用戶輸入一次性代碼。WiKID 令牌支持多個 WiKID 域,因此不再需要令牌 ‘keychain’。
結(jié)束語
本文幫助您提前進行一些規(guī)劃,以改善服務器、客戶端或網(wǎng)絡中的 Ajax 應用程序的安全性。由于安全性對開發(fā)人員、測試人員、系統(tǒng)管理員和潛在用戶都非常重要,因此覺察并解決潛在的安全性問題可以為開發(fā)團隊和用戶提供完美的體驗。




