成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

網頁外鏈用了target="_blank",結果悲劇了

開發 前端
今天給大家分享一個 Web 知識點。如果你有過一段時間的 Web 開發經驗,可能已經知道了。不過對于剛接觸的新手來說,還是有必要了解一下的。

今天給大家分享一個 Web 知識點。如果你有過一段時間的 Web 開發經驗,可能已經知道了。不過對于剛接觸的新手來說,還是有必要了解一下的。

我們知道,網頁里的a標簽默認在當前窗口跳轉鏈接地址,如果需要在新窗口打開,需要給 a 標簽添加一個target="_blank"屬性。 

  1. <a href="http://kaysonli.com/" target="_blank">1024譯站</a> 

順便提下一個有意思的現象,很早之前我就發現,國外網站傾向于在當前頁跳轉,而國內網站喜歡打開新窗口。不信你們可以去驗證下。我不知道這是交互設計上的文化差異,還是技術上的開發習慣。

當然,這兩種方式各有優缺點。當前頁跳轉顯得操作比較有連貫性,不會貿然打斷用戶的注意力,也會減少瀏覽器的窗口(tab 頁)數量。但是對于需要反復回到初始頁面的場景來說,就很麻煩了。比如搜索結果頁面,通常需要查看對比幾個目標地址,保留在多個窗口還是比較方便。

今天要說的不只是用戶體驗上的差別,而是涉及安全和性能。

安全隱患

如果只是加上target="_blank",打開新窗口后,新頁面能通過window.opener獲取到來源頁面的window對象,即使跨域也一樣。雖然跨域的頁面對于這個對象的屬性訪問有所限制,但還是有漏網之魚。

這是某網頁打開新窗口的頁面控制臺輸出結果。可以看到window.opener的一些屬性,某些屬性的訪問被攔截,是因為跨域安全策略的限制。

即便如此,還是給一些操作留下可乘之機。比如修改window.opener.location的值,指向另外一個地址。你想想看,剛剛還是在某個網站瀏覽,隨后打開了新窗口,結果這個新窗口神不知鬼不覺地把原來的網頁地址改了。這個可以用來做什么?釣魚啊!等你回到那個釣魚頁面,已經偽裝成登錄頁,你可能就稀里糊涂把賬號密碼輸進去了。

[[326653]]

還有一種玩法,如果你處于登錄狀態,有些操作可能只是發送一個GET請求就完事了。通過修改地址,就執行了非你本意的操作,其實就是 CSRF 攻擊。

性能問題

除了安全隱患外,還有可能造成性能問題。通過target="_blank"打開的新窗口,跟原來的頁面窗口共用一個進程。如果這個新頁面執行了一大堆性能不好的 JavaScript 代碼,占用了大量系統資源,那你原來的頁面也會受到池魚之殃。

解決方案

盡量不使用target="_blank",如果一定要用,需要加上rel="noopener"或者rel="noreferrer"。這樣新窗口的window.openner就是null了,而且會讓新窗口運行在獨立的進程里,不會拖累原來頁面的進程。不過,有些瀏覽器對性能做了優化,即使不加這個屬性,新窗口也會在獨立進程打開。不過為了安全考慮,還是加上吧。

我特意用自己的博客網站 http://www.kaysonli.com/ 試了一下,點擊里面的外鏈打開新頁面,window.openner都是null。查看頁面元素發現,a標簽都加上了 rel="noreferrer"。博客是用 Hexo 生成的,看來這種設置已經成了基本常識了。

另外,對于通過window.open的方式打開的新頁面,可以這樣做: 

  1. var yourWindow = window.open();  
  2. yourWindow.opener = null 
  3. yourWindow.location = "http://someurl.here" 
  4. yourWindow.target = "_blank"

希望這個小技巧對你有用。 

 

責任編輯:龐桂玉 來源: Web開發
相關推薦

2020-04-10 08:03:04

分布式鎖Redlock算法流行算法

2021-10-20 08:23:20

HTMLWindow.open安全漏洞

2018-09-18 10:35:43

2021-07-29 09:47:06

IDEA 項目maven

2011-05-26 17:07:39

SEO外鏈

2012-09-04 10:42:48

2011-07-03 20:29:28

外鏈

2011-05-31 13:43:46

外鏈

2012-12-27 14:22:24

2011-05-25 17:45:59

外鏈

2021-02-02 11:13:41

BigDecimal支付電商

2016-09-07 09:14:55

2015-06-01 15:11:37

數據庫update

2011-06-10 15:04:41

SEO外鏈

2011-05-23 18:01:19

外鏈

2011-06-20 12:47:26

外鏈SEO

2011-06-19 12:04:35

外鏈

2021-09-17 18:00:47

騰訊微信移動應用

2011-05-20 18:36:01

外鏈

2011-06-14 18:02:26

外鏈網站降權
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久艹网站| 人人看人人草 | 69视频在线播放 | 国产综合精品 | a免费视频| 久久综合久久综合久久 | 欧美 日韩 国产 成人 在线 | 精品国产乱码一区二区三区 | 亚洲欧美中文日韩在线 | 精品色 | 午夜久久久久久久久久一区二区 | 国产色婷婷精品综合在线播放 | 一区二区三区日韩 | 91.xxx.高清在线 | 特一级黄色毛片 | 精品日韩一区二区 | 亚洲成人免费视频在线 | 中文天堂网 | 国产精品久久二区 | 超碰免费在线 | 激情婷婷| 久久久精彩视频 | 毛片免费视频 | 国产视频一区在线 | 午夜免费精品视频 | 人人鲁人人莫人人爱精品 | 国产在线不卡 | 国产一区在线免费 | 伦理一区二区 | 91网站视频在线观看 | 中文字幕1区2区3区 亚洲国产成人精品女人久久久 | 在线亚洲免费视频 | 国产精品一区三区 | 日韩超碰 | 99爱在线视频 | 欧美一区视频 | 色综合天天综合网国产成人网 | 久久99网 | av免费网站在线观看 | eeuss国产一区二区三区四区 | 日韩av免费在线观看 |