Skip to content

Instantly share code, notes, and snippets.

@Eotones
Last active March 9, 2020 09:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Eotones/014da12aaea9f28ef0a40e9fe394b732 to your computer and use it in GitHub Desktop.
Save Eotones/014da12aaea9f28ef0a40e9fe394b732 to your computer and use it in GitHub Desktop.
[UserScript] 把Plurk的Referrer-Policy從origin改成same-origin

[UserScript] 把Plurk的Referrer-Policy從origin改成same-origin

解決新版Twitter(2020年3月)對於外部網站點擊連結到含有敏感內容推文無法觀看的bug

已知bug產生條件

  • 使用者已登入Twitter,並且帳號有開啟觀看敏感內容的權限
  • 使用者從Twitter以外的網站點擊含有敏感內容的Twitter連結,並且HTTP Request Header帶有來源網站的referrer

幾種解決方法

利用瀏覽器的Referrer-Policy阻止來源網站的referrer送出

  • 方法一: <a href="" rel="noreferrer">link</a>
  • 方法二: <a href="" referrerpolicy="no-referrer">link</a>
  • 方法三: <meta name="referrer" content="same-origin">

因為Plurk的噗文都是由JS動態產生,選方法三的解法會簡單一點

方法三的瀏覽器JS腳本

參考下方index.js,主要是利用JS腳本把Plurk的:

<meta name="referrer" content="origin">

改成:

<meta name="referrer" content="same-origin">

瀏覽器的JS腳本管理擴充套件

要在瀏覽器自動運行JS腳本需要安裝JS腳本管理擴充套件

  • Chrome 的 Tampermonkey
  • Firefox 的 TampermonkeyGreasemonkey

參考資料

// ==UserScript==
// @name Change Plurk Referrer-Policy
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 把Plurk的Referrer-Policy從origin改成same-origin
// @author You
// @match https://www.plurk.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
document.querySelectorAll('meta').forEach(e => {
if(e.name == 'referrer') e.content = "same-origin";
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment