ワードプレスのwp_strict_cross_origin_referrerフィルタの使用方法・解説

概要

wp_strict_cross_origin_referrer フィルタは、WordPressサイトがレスポンスヘッダーに含める Referrer-Policy を制御するために使用されます。特に strict-origin-when-cross-origin のmeta要素を出力する機能に関連しています。このフィルタは、セキュリティ関係の設定として重要です。主に以下のような機能を実装する際に使われます。

  1. セキュアなサイト間通信の設定
  2. プライバシー保護の強化
  3. リファラー情報の制御
  4. 外部サイトからのリファラー制限
  5. ブラウザの動作の調整
  6. 任意のHTTPレスポンスヘッダーのカスタマイズ
  7. セキュリティポリシーの適応
  8. コンテンツポリシーの設定

構文

add_filter( 'wp_strict_cross_origin_referrer', 'callback_function_name' );

パラメータ

  • string $policy 現在のリファラーポリシー(デフォルトは no-referrer

戻り値

  • string 修正後のリファラーポリシー

関連する関数

wp_strict_cross_origin_referrer

利用可能なバージョン

このフィルタは、WordPress 5.4 以降で利用可能です。

コアファイルのパス

wp-includes/default-filters.php

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

  1. リファラーポリシーの変更
add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
    return 'strict-origin-when-cross-origin';
} );

このコードは、リファラーポリシーを strict-origin-when-cross-origin に設定します。リファラー情報の提供を制御することで、外部リソースへの情報の漏洩を防ぎます。

  1. カスタムリファラーポリシーの動的設定
add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
    if ( is_user_logged_in() ) {
        return 'no-referrer';
    }
    return $policy;
} );

このスニペットは、ユーザーがログインしている場合には no-referrer ポリシーを適用し、それ以外の場合はデフォルトポリシーを維持します。

  1. 条件に基づくリファラーポリシーの変更
add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
    if ( is_page('about') ) {
        return 'same-origin';
    }
    return $policy;
} );

このコードは、「about」というスラッグのページが表示されたときに、リファラーポリシーを same-origin に変更します。

  1. テーマの設定時にリファラーポリシーを変更
add_action( 'after_setup_theme', function() {
    add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
        return 'strict-origin';
    } );
} );

このサンプルは、テーマがセットアップされた後にリファラーポリシーを strict-origin に設定します。

  1. リファラーポリシーのログ
add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
    error_log( 'Current Referrer Policy: ' . $policy );
    return $policy;
} );

このコードは、現在のリファラーポリシーをエラーログに記録します。デバッグ目的で使用することができます。

この関数について質問する


上の計算式の答えを入力してください