概要
wp_strict_cross_origin_referrer
フィルタは、WordPressサイトがレスポンスヘッダーに含める Referrer-Policy
を制御するために使用されます。特に strict-origin-when-cross-origin
のmeta要素を出力する機能に関連しています。このフィルタは、セキュリティ関係の設定として重要です。主に以下のような機能を実装する際に使われます。
- セキュアなサイト間通信の設定
- プライバシー保護の強化
- リファラー情報の制御
- 外部サイトからのリファラー制限
- ブラウザの動作の調整
- 任意のHTTPレスポンスヘッダーのカスタマイズ
- セキュリティポリシーの適応
- コンテンツポリシーの設定
構文
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 | 〇 |
サンプルコード
- リファラーポリシーの変更
add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
return 'strict-origin-when-cross-origin';
} );
このコードは、リファラーポリシーを strict-origin-when-cross-origin
に設定します。リファラー情報の提供を制御することで、外部リソースへの情報の漏洩を防ぎます。
- カスタムリファラーポリシーの動的設定
add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
if ( is_user_logged_in() ) {
return 'no-referrer';
}
return $policy;
} );
このスニペットは、ユーザーがログインしている場合には no-referrer
ポリシーを適用し、それ以外の場合はデフォルトポリシーを維持します。
- 条件に基づくリファラーポリシーの変更
add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
if ( is_page('about') ) {
return 'same-origin';
}
return $policy;
} );
このコードは、「about」というスラッグのページが表示されたときに、リファラーポリシーを same-origin
に変更します。
- テーマの設定時にリファラーポリシーを変更
add_action( 'after_setup_theme', function() {
add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
return 'strict-origin';
} );
} );
このサンプルは、テーマがセットアップされた後にリファラーポリシーを strict-origin
に設定します。
- リファラーポリシーのログ
add_filter( 'wp_strict_cross_origin_referrer', function( $policy ) {
error_log( 'Current Referrer Policy: ' . $policy );
return $policy;
} );
このコードは、現在のリファラーポリシーをエラーログに記録します。デバッグ目的で使用することができます。