sanitize_url()


WordPressのsanitize_url()関数は、URLをサニタイズするために使用されます。この関数は、不正な文字や危険なコードを除去し、安全なURLを返します。

構文

sanitize_url( string $url, string[] $protocols = null, string $_context = 'display' );

引数の説明:

  • $url (string) — サニタイズするURL。
  • $protocols (string[]) — 許可するプロトコルの配列。デフォルトはnullで、httphttpsftpmailtoなどが許可されます。
  • $_context (string) — サニタイズのコンテキスト。デフォルトは'display'

例1: 基本的なURLのサニタイズ

この例では、単純なURLをサニタイズします。

<?php $clean_url = sanitize_url('https://example.com'); ?>

例2: 不正な文字を含むURLのサニタイズ

不正な文字を含むURLをサニタイズします。

<?php $clean_url = sanitize_url('https://example.com/<script>alert("xss")</script>'); ?>

例3: 特定のプロトコルのみ許可

httpsmailtoのみを許可してURLをサニタイズします。

<?php $clean_url = sanitize_url('mailto:user@example.com', array('https', 'mailto')); ?>

例4: 相対URLのサニタイズ

相対URLをサニタイズします。

<?php $clean_url = sanitize_url('/path/to/resource'); ?>

例5: クエリパラメータを含むURLのサニタイズ

クエリパラメータを含むURLをサニタイズします。

<?php $clean_url = sanitize_url('https://example.com/?param=value'); ?>

例6: ユーザー入力のサニタイズ

ユーザー入力から受け取ったURLをサニタイズします。

<?php $user_url = $_POST['url']; $clean_url = sanitize_url($user_url); ?>

例7: カスタムプロトコルの許可

カスタムプロトコルを許可してURLをサニタイズします。

<?php $clean_url = sanitize_url('custom://example.com', array('custom')); ?>

例8: サニタイズ後のURLの表示

サニタイズしたURLを表示します。

<?php echo esc_url($clean_url); ?>

注意点

  • サニタイズはセキュリティ対策の一部であり、完全な保護を保証するものではありません。
  • ユーザー入力を受け取る場合は、必ずサニタイズを行ってください。
  • 許可されていないプロトコルを含むURLは、サニタイズ後に空の文字列になることがあります。

関連機能: