iT邦幫忙

0

Cordova APP 使用不同版本Xcode建置,發送的request有不同的referer

Pin 2021-06-29 09:47:441028 瀏覽
  • 分享至 

  • xImage

目前的在Cordova有發生一個狀況,使用不同不同版本的Xcode建置iOS APP,Request會有不同的referer。

簡述Cordova App架構:

index.html(此為Cordova的主頁)
-> iframe (嵌入我的mobile網站,例如https://mymobileweb.com.tw )

Cordova主頁 index.html,設定meta:

<meta name="referrer" content="unsafe-url">

我的mobile網站主頁Home.html, 也作一樣的meta設定

<meta name="referrer" content="unsafe-url">

使用Xcode@11.5版本建置iOS App,當iframe內的mymobileweb使用$.ajax發出request到後端,可以看到referer為:「https://mymobileweb.com.tw/Home 」,這個是我要的結果。

但是使用Xcode@12.5.1建置iOS App,使用$.ajax發出request到後端,得到的referer卻是:「https://mymobileweb.com.tw/ 」,不包含Page Name,路徑。
這個部份如果我執行:

document.location.href = "https://mymobileweb.com.tw";

把Cordova原本的主頁(index.html)強制轉到我的mobile網站,即Cordova App結構:

Home.html

此時使用$.ajax發出request到後端,可以看到referer為:「https://mymobileweb.com.tw/Home 」,就是我要的結果,由此判斷Cordova的部份應該是沒有問題。

兩個測試方式使用的Cordova與我的mobile網站都是相同的原始碼,只差異在使用不同版本的Xcode產出iOS App。

這個部份我有查看 Referrer-Policy,大致理解不同的設定值對於referer造成的影響。

不過仍不解為何使用不同版本的Xcode產出的iOS APP會有這個差異,請問大家是否有什麼想法,或是可以從何下手呢?


07/01更新

查詢到相關討論資訊:iOS14发布后的用户跟踪和网站分析

Referrer限制
对Referrer的限制或许是ITP中除了对Cookie的限制之外最大的挑战。简单来说跨站的访问中将默认强制(意思是这是它的底线,你无法关闭或用更宽松的政策覆盖它)采用origin的政策(Referrer Policy)

看起來是iOS SDK 14的安全性調整。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-06-29 10:22:45

Google 到這個可以設定 HTTP Header 的 Plugin
看看合不合用

Pin iT邦新手 4 級 ‧ 2021-06-29 23:09:52 檢舉

謝謝您的回應,測試了一下,仍無法解決這個問題。

目前傾向下載11.5~12.5.1之前的版本進行測試,先找出是哪一個版本造成這個狀況,再去深入探究原因。

如果真要朝這個方向著手
建議著重在iOS的版本而非XCode的版本
雖然兩者都會一直更新版本

我要發表回答

立即登入回答