轉(zhuǎn)帖|行業(yè)資訊|編輯:郝浩|2016-09-07 16:16:36.000|閱讀 246 次
概述:早在2014年,就已經(jīng)有很多安全研究專家表示,target=”_blank”屬性是非常不安全的一個屬性。而且當初有些關(guān)于該屬性的安全報告為了引起人們的注意,還特地將標題設(shè)置得非常醒目。我印象中最深的就是那篇標題為《Target=”_blank”–有史以來最被人們低估的漏洞》的報告,感興趣的同學可以看一下這份報告。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

現(xiàn)在,許多主流的互聯(lián)網(wǎng)服務(wù)提供商都會在網(wǎng)頁的鏈接地址中加入target=”_blank”屬性,而這絕對是一種非常不安全的行為。不僅如此,target=”_blank”屬性還將會使廣大互聯(lián)網(wǎng)用戶暴露在釣魚攻擊的風險之下。
早在2014年,就已經(jīng)有很多安全研究專家表示,target=”_blank”屬性是非常不安全的一個屬性。而且當初有些關(guān)于該屬性的安全報告為了引起人們的注意,還特地將標題設(shè)置得非常醒目。我印象中最深的就是那篇標題為《Target=”_blank”–有史以來最被人們低估的漏洞》的報告,感興趣的同學可以看一下這份報告[傳送門]。
當用戶點擊了某個網(wǎng)站中帶有target=”_blank”屬性的超鏈接后,瀏覽器會單獨新建一個標簽頁來顯示該鏈接所指向的內(nèi)容。但是請注意,在這一瞬間,瀏覽器會允許新建的標簽頁通過一個名為“window.opener”的瀏覽器API來與之前的網(wǎng)頁進行短暫通信。
此時,攻擊者就可以將惡意代碼嵌入在新打開的網(wǎng)站中,然后檢測用戶是從哪一個網(wǎng)站跳轉(zhuǎn)過來的,最后再利用window.opener接口來迫使原始網(wǎng)頁打開一個新的URL地址。
比如說,如果用戶點擊了Facebook網(wǎng)站中一個帶有target=”_blank”屬性的鏈接,那么攻擊者就可以利用一個偽造的Facebook頁面來替換原始的Facebook網(wǎng)頁,然后要求用戶重新輸入用戶名和密碼。這樣一來,攻擊者便成功獲取到了目標用戶的憑證數(shù)據(jù)。

可怕的是,Instagram、Facebook、以及Twitter等大型社交網(wǎng)站都會受到這種攻擊的影響。
在上述這三大社交網(wǎng)站中,只有Instagram徹底修復了這個問題。而對于Twitter而言,只有當用戶使用Safari瀏覽器來訪問Twitter網(wǎng)站時才有可能出現(xiàn)這種問題。但是谷歌卻早已公開表示,他們并不關(guān)心這個問題…
這也就意味著,修復該問題的重擔將落在網(wǎng)站管理員的身上了。實際上,修復該問題最簡單的方法就是在網(wǎng)站所有的鏈接中加入rel=”noopener”屬性。對于火狐瀏覽器而言,由于它并不完全支持該屬性,所以開發(fā)人員應(yīng)該使用rel=”noopenernoreferrer”屬性作為代替。
請記住,當你每次使用window.open()接口來打開一個新的網(wǎng)頁窗口時,你的安全性很有可能會受到這一API的影響,所以別忘了重置“opener”屬性。
var newWnd = window.open(); newWnd.opener = null;
我個人認為Twitter解決這一問題的方法應(yīng)該是最有效的。Twitter的開發(fā)人員使用了一個腳本來自動向網(wǎng)站中的鏈接添加該屬性。而安全研究人員也表示,攻擊者之所以仍然能夠通過Safari瀏覽器來利用Twitter的這一漏洞,很有可能是因為他們所用的腳本中存在問題。
本文轉(zhuǎn)載自
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn