wp_sanitize_redirect()


WordPressのwp_sanitize_redirect()関数は、リダイレクトURLを適切にサニタイズして安全に使用するための関数です。

構文

wp_sanitize_redirect( string $location );
  • $location (string) — リダイレクト先のURLを表す文字列。

例 1. URLのサニタイズ

リダイレクトURLをサニタイズする基本的な例。

<?php
$url = wp_sanitize_redirect( 'https://example.com/some path' );
?>

例 2. リダイレクト前にURLをサニタイズ

サニタイズ後にリダイレクトを実行します。

<?php
$url = wp_sanitize_redirect( 'https://example.com/page?id=123' );
wp_redirect( $url );
exit;
?>

例 3. ユーザー入力を安全に処理

ユーザー入力されたURLを処理してサニタイズします。

<?php
$user_input = 'https://example.com/?name=John Doe';
$safe_url = wp_sanitize_redirect( $user_input );
?>

例 4. デフォルトのURLを設定

無効なURLが入力された場合にデフォルトURLを設定します。

<?php
$user_input = 'invalid_url';
$url = wp_sanitize_redirect( $user_input );
if ( ! filter_var( $url, FILTER_VALIDATE_URL ) ) {
    $url = 'https://example.com/default';
}
?>

例 5. カスタム関数での使用

カスタム関数の一部としてwp_sanitize_redirect()を使用します。

<?php
function safe_redirect( $url ) {
    $sanitized_url = wp_sanitize_redirect( $url );
    wp_redirect( $sanitized_url );
    exit;
}
safe_redirect( 'https://example.com/unsafe path' );
?>

注意事項:

  • wp_sanitize_redirect()は不正なリダイレクトURLの使用を防ぎますが、URLが完全に安全であることを保証するわけではありません。
  • URLをサニタイズした後でもfilter_var()やその他のバリデーションを行うことを推奨します。

関連機能: