見出し画像

Referrer-Policy for kintone 1.2でスマートフォンに対応しました

こんにちは、エミックの松尾です。以前の記事においてiOSのSafariは“Referrer-Policy: same-origin”に対応していないと記載しましたが、改めて検証した結果、その記述は誤りであることが分かりました。その点を踏まえて、今月上旬にReferrer-Policy for kintoneをスマートフォンに対応させました。今回の記事では、Referrer-Policy for kintoneのスマートフォン対応について記しています。

Referrer-Policy for kintoneは無料のプラグイン

Referrer-Policy for kintoneについて改めて紹介します。Referrer-Policy for kintoneは、リファラー情報の外部への送信を極力抑制するリファラーポリシーを設定する、kintone用のプラグインです。

リファラーポリシーとして「same-origin」を指定した場合の挙動となるように調整しており、プラグインをインストールしたアプリにおいて、リンク先の外部サイトにリファラー情報を極力送信しないようにします。

なお、本プラグインは無料でご利用いただくことができます。プラグインはGitHub(https://github.com/emic/referrer-policy-for-kintone/releases/latest)からダウンロード可能です。インストール方法の詳細については以前の記事を参照してください。

Referrer-Policy for kintoneを利用する上での制約

Referrer-Policy for kintoneを利用する上での注意点の1つとして、“Referrer-Policy: same-origin”に対応していないWebブラウザーを使用している場合には、本プラグインの効果はないことが挙げられます。

以前の記事では、Internet ExplorerとChromiumベースではないMicrosoft Edge以外に、iOSのSafariも“Referrer-Policy: same-origin”に対応していないWebブラウザーの1つとして挙げていました。しかしながら、改めて検証してみるとその記述は誤りであることが分かりましたので、訂正したいと思います。

Can I useでは各ブラウザーの対応状況を確認できる

iOSのSafariは“Referrer-Policy: same-origin”に対応

実際に手元で検証してみたところ、iOS 12.3.1や2020年2月21日現在最新版であるiOS 13.3.1のSafariで“Referrer-Policy: same-origin”に対応していることを確認しました。

どのバージョンのiOSから対応するようになったのかきちんと検証できていませんが、https://opensource.apple.com/で公開されているソースコードや変更履歴を調べてみたところ、macOS High Sierra 10.13.4に含まれるWebCore-7605.1.33.1.2のChangeLog、およびiOS 11.3に含まれるWebCore-7605.1.33.0.2のChangeLogにReferrer-Policyヘッダーの既定値であるno-referrer-when-downgradeに関する記述が登場し始めています。

Setting the request referrer policy to the Document referrer policy if no one is set.
If Document has no referrer policy, use no-referrer-when-downgrade as per the spec.(https://opensource.apple.com/source/WebCore/WebCore-7605.1.33.0.2/ChangeLog.auto.htmlより引用)

このことから、2018年3月に公開されたmacOS High Sierra 10.13.4のSafari 11.1と同時期にリリースされた、iOS 11.3あたりからiOS用のSafariが“Referrer-Policy: same-origin”に対応していた可能性が高いと考えられます。

Referrer-Policy for kintone 1.2でスマートフォンに対応

Referrer-Policy for kintoneのバージョン1.0およびバージョン1.1では、スマートフォンには対応していませんでした。これは私がiOSのSafariは“Referrer-Policy: same-origin”に対応していないと誤って認識していたことで、モバイルに対応させる必要はないと思い込んでしまっていたからです。

実際にiOSで動作を検証してみたところ、上述の点は間違いであることに気づいたので、プラグインのスマートフォン対応に取りかかりました。

Referrer-Policy for kintoneでは、レコード一覧画面、レコード詳細画面、レコード追加画面、レコード編集画面、レコード印刷画面、グラフ画面を対象として、各画面の表示後にmeta要素(<meta name="referrer" content="same-origin">)を追加するようにしています。kintone JavaScript APIを利用しており、これまではPCのみを考慮していましたが、バージョン1.2ではモバイルのときも同様に処理するように調整を行いました。

(2020年3月3日追記・訂正:Referrer-Policy for kintoneではポータル画面の表示後にもmeta要素を追加するようにしていると当初記載していましたが、これは誤りでした。ポータル画面は対象外だったので、ポータル画面に関する記述を削除しました。)

まとめ

iOSのSafariが“Referrer-Policy: same-origin”にすでに対応していたこと、およびReferrer-Policy for kintone 1.2の変更内容について解説しました。iOSのSafariは“Referrer-Policy: same-origin”に対応していないと以前記載しましたが、改めて検証した結果、その記述は誤りであることが分かりました。その点を踏まえて、Referrer-Policy for kintoneのバージョン1.2ではスマートフォンにも対応させるように調整を行った次第です。

この記事が気に入ったらサポートをしてみませんか?