概要
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;
} );
このコードは、現在のリファラーポリシーをエラーログに記録します。デバッグ目的で使用することができます。