Mashup--------------------------------------------------
Mashup是近年來WEB2.0發展起來後的新興技術,他可以將網路中不同的服務,透過API的方式將資料整合,可以經由一些mashup tool來達成,而實作的方面在web2.0中有實際用過幾項工具,例如Yahoo! Pipes 以及Popfly等等工具,可以用簡單的拖曳等方式來結合不同的服務。
Mashup的幾個安全重點
第一點、API開放,造成所有的人都可以用,好人壞人都可以,所以就有了麻煩。
再來Mashup可以成為路由器或代理服務器的跳板,所以無法確定對方是誰。
第三點、因為mashup扮演的是中間者,所以再使用時一定會經過它,例如在用Gmail的時候,是通過安全的SSL,但是在假如在使用開發者的mashup的時候,他是不是依然通過SSL來進入你的Gmail裡就很難說。
第四點、開發者經由mashup在電腦裡建立session cookie,因為session cookie不是使用者自己建立,而是經由mashup建立的,假如是可靠的開發者就要做好管理,假如是惡意的管理者就有可能利用這個安全漏洞。
Mashup固然對於整合服務有很大的幫助,一整天需要用的網路資源,可能在一個介面就可以完完全全的實現,但是Mashup所造成的網路安全呢?在方便的同時不能忽略了安全這部份,水能載舟亦能覆舟,在網路上看到大陸的用詞,「裸奔的Mashup」。
當然mashup的使用範圍更廣,應用也越來越多,越來越多人在寫mashup,所以當火紅起來的時候,以後就要更重視安全的這一塊。
RSS------------------------------------------------------------
在上次的RSS課程中有提到一些RSS會受到的攻擊,其中的一項就是CSRF,
我們就對此稍做一點補充的說明。
CSRF是Cross Site Request Forgery的縮寫,
也就就是跨站請求偽造的意思,在使用者會話下對某個CGI做一些GET或POST的事情而這些事情使用者可能不知情。
一般來說網站是通過cookie來識別用戶,當用戶身份驗證之後流覽器就會得到一個標識使用者身份的cookie,只要不登出或關閉流覽器,以後再這個網站會帶上這個cookie。
如果這段時間流覽器被人控制著請求了這個網站的url,可能就會執行一些例如修改個人資料這類用戶不想做的事。這就是所謂的請求偽造。
舉個例子,某個網站可以貼圖,在貼圖的URL中寫入登出的連結,當使用者閱讀這個網站之後就會登出了,因為用戶以自己的身份訪問了退出登陸連結,在使用者看來是網站裡面有一張有問題的“圖片”,而不是想要退出,但程式會認為是使用者要求登出。
貼圖只是GET的方式,還有一些偽造POST的方式。一個辦法是利用跨站,從協力廠商網站發動攻擊。比如一個存在問題的blog,有些人會在目標blog留言,留下一個網址,引誘主人點擊過來,然後作個HTML表單提交些資料過去。
若是使用多窗口流覽器就更要小心了。多視窗流覽器便捷的同時也帶來了一些問題,因為多視窗流覽器新開的視窗是具有當前所有會話。
多視窗流覽器的各視窗的會話是通用的,所以若是已經登入blog,開其他的網站視窗也會帶上在blog登錄的cookie。 在Web應用程式側防禦CSRF漏洞,一般都是利用驗證碼。
還有一個思路是在用戶端防禦,貌似可以做成一個類似HTTP Watch的軟體,他是一個網頁資料分析工具,可以對網站與 Internet Explorer之間的 需求和回覆的通訊情況進行分析把他掛在流覽器上攔截或者過濾跨域的cookie就可以防禦了。
Widget-------------------------------------------------
Widget 是一種在桌面上,或是在網頁裡簡單的小應用程式,它能夠方便得取
得其來源網站的一些資訊。例如全球各時區時間、氣象、匯率、字典等等,完全不用打開瀏覽器經過搜尋、下載等過程。他也同時擁有了數種不同的稱號 ,gadget、widget、desktop application、downloadable application。 由於它使用了JavaScrip 的技術,所以他的安全性也產生了問題。上課中提到,每一個Widget裡面就會有一個DOM (Document ObjectModel)的架構 ,然而這裡面的DOM跟來源網站的DOM可以由程式編寫者或是使用者決定是否要互相share。
然而當兩者share同一個的情況下安全性就會大大的降低,就比如來源網站被植入了惡意程式,使用者那一端也會跟著被感染。所以老師提到說把Widget load進一個iframe裡面,因為它擁有一個獨立的DOM所以能夠使安全性提高。然而在怎樣的預防都會有漏洞可循,所以來源網站的可信任度以及可信任的Widget程式也是十分重要的防範措施。