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

Safari 隱私模式下,URL 參數為何神秘消失?

網絡 網絡管理
最近在排查Safari在隱私模式下頁面參數丟失的問題,如果通過Safari直接打開B頁面,此時在B頁面可以正常獲取到頁面鏈接上的參數,但是如果Safari先打開A頁面,然后通過A頁面再跳轉到B頁面(A、B頁面部署在不同域名下),此時的B頁面通過JS就獲取不到鏈接上的參數了??,這樣就會導致一些依賴頁面參數的功能出現異常!

前言

最近在排查Safari在隱私模式下頁面參數丟失的問題,如果通過Safari直接打開B頁面,此時在B頁面可以正常獲取到頁面鏈接上的參數,但是如果Safari先打開A頁面,然后通過A頁面再跳轉到B頁面(A、B頁面部署在不同域名下),此時的B頁面通過JS就獲取不到鏈接上的參數了??,這樣就會導致一些依賴頁面參數的功能出現異常!

問題演示

B頁面鏈接格式如下:xx.qq.com?au=xx...

通過一下代碼獲取頁面鏈接及頁面參數:

console.log('link', window.location.href);
console.log('query', window.location.search);

如果是隱私模式下單獨打開B頁面

圖片圖片

此時可以看到是能夠正常獲取到頁面完整鏈接(包括參數)的。符合預期

但是如果先打開A頁面,再從A頁面跳到B頁面(A、B域名不同),我們再來看看結果:

圖片圖片

從上圖可以看到,此時location.search就已經獲取不到了,location.href拿到的值也不再包括location.search了。

那么Safari在隱私模式下的這種做法是為了做什么呢?

Safari隱私瀏覽

通過查詢資料后得知,在 Safari 17 中,隱私瀏覽功能更加私密,并新增了防御措施,以抵御一些最先進的追蹤技術。技術改進包括:

  • 鏈接跟蹤保護
  • 阻止已知跟蹤器的網絡負載,包括 CNAME 隱藏的已知跟蹤器
  • 高級指紋保護
  • 具有網站或歷史記錄訪問權限的擴展程序默認處于關閉狀態

鏈接跟蹤保護

Safari 的“隱私瀏覽”功能在用戶瀏覽不同網站時,針對目標 URL 中的跟蹤信息實施了兩項新的保護措施。具體涵蓋的 URL 部分包括查詢參數和 URL 片段。這些保護措施旨在使目標網站上運行的第三方腳本更難以通過讀取 URL 來關聯跨網站的用戶活動。

在文檔上有這樣一段話:

圖片圖片

翻譯過來就是:在跨站導航后的目標網站上,所有嘗試讀取完整 URL或參數 的第三方腳本(例如使用 location.search、location.href 或 document.URL)都將獲得一個不含查詢參數或片段的 URL 版本。

也就是說Safari隱私模式下鏈接參數丟失必須滿足以下兩種情況:

  • 頁面發生了跨域名跳轉
  • 獲取鏈接或參數在第三方腳本中執行(其實就是JS與html模版不在同一個域名下)

解決方案

同域跳轉

既然不同發生跨域跳轉,那么同域名跳轉是不是就能正常獲取頁面鏈接參數了

圖片圖片

同域部署

如果第一種方案滿足不了業務場景,那么可以嘗試將html模版文件與JS文件用相同域名部署,也能規避Safari隱私模式的限制

內聯腳本

如果你的業務既要跨域跳轉又不想改部署方案,那么內聯腳本這種方案比較適合你,我們可以在html模版文件內插入一段JS腳本去獲取頁面鏈接及參數,這樣的話這段JS就不屬于第三方腳本了。

比如:

<!-- index.html -->
<script>
  window.selfLink = window.location.href;
    window.selfSearch = window.location.search;
</script>

然后再使用的地方直接讀取window上的selfLink、selfSearch

console.log('link', window.location.href);
console.log('query', window.location.search);
console.log('--selfLink--', window.selfLink);
console.log('--selfSearch--', window.selfSearch);

圖片圖片

可以看到通過讀取內聯腳本掛在window上的selfLink、selfSearch可以正常獲取,而直接讀取window.location.href會丟失search參數。

責任編輯:武曉燕 來源: 前端南玖
相關推薦

2011-12-27 10:12:59

SafariChrome

2021-08-17 07:05:23

springboot InputStreamparameter

2022-06-30 12:43:53

Firefox隱私功能URL

2019-10-11 10:23:13

ClassLoaderJavaJVM

2021-07-15 10:38:36

REvil勒索軟件黑客

2023-08-28 06:52:38

主板北橋芯片

2020-03-09 17:12:36

MLCC暴漲電阻

2022-01-21 13:37:01

蘋果MacSafari 瀏覽器

2023-06-13 15:54:06

2025-06-16 08:41:38

2019-05-13 08:46:30

物聯網安全隱私物聯網

2023-06-06 06:26:26

2023-10-19 08:30:58

線程源碼thread

2022-01-21 06:54:18

iPhoneiPadiOS

2014-06-17 10:37:43

2020-11-17 19:14:51

MacOS蘋果隱私

2014-09-12 17:55:42

2015-07-20 09:35:57

開源商業模式

2013-07-21 22:10:00

NBASAP HANA云計算宕機

2013-07-19 14:35:59

iOS中BlockiOS開發學習
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 日韩欧美国产精品一区 | 久久国产精品免费一区二区三区 | 午夜三区 | 欧美日韩精品一区 | 久久美国| 亚洲精品中文字幕av | 免费小视频在线观看 | 黄色亚洲网站 | 东京久久| 国产在线一区二区三区 | 欧美日产国产成人免费图片 | 日韩在线观看中文字幕 | 黄色一级电影免费观看 | 欧美激情精品久久久久久 | 欧美激情免费在线 | 欧美日韩国产一区 | 久久国产精品免费视频 | 欧美不卡视频一区发布 | 国内精品一区二区三区 | 黄色精品视频网站 | 黄视频免费在线 | 中文字幕在线看人 | 九九色综合| 国产在线a | 久久久久久国产精品mv | 国产日韩欧美中文 | 毛片免费观看视频 | 国产成人小视频 | 亚洲视频在线免费观看 | 亚洲精品久久久久久久久久久 | 亚洲一二三视频 | 日本不卡一区 | 青娱乐一区二区 | 在线免费观看成人 | 成人午夜免费福利视频 | 久久免费视频1 | 国产 日韩 欧美 在线 | 亚洲成人免费在线观看 | 精品中文字幕在线观看 | 美国一级片在线观看 |