MENU

【サニタイズ】フォーム入力値のセキュリティ対策

目次

概要

フォームに特殊文字が入力された場合、予期せぬ動作を起こすことがある。

これを防ぐためにサニタイズ処理を施す。

使用する関数

サニタイズ実装は、htmlspecialchars関数を使う。(公式リファレンス

これにより、HTMLタグを「HTMLエンティティ」へ変換し、スクリプト等を無効化することができる。

変換例:「<br>」→「&lt;br&gt;」

// サニタイズ
<?php
$clean = array();
if (!empty($_POST)) {
    foreach ($_POST as $key => $value) {
        $clean[$key] = htmlspecialchars($value, ENT_QUOTES);
    }
}
?>

※ENT_QUOTES:シングルクォート、ダブルクォートのどちらもHTMLエンティティへ変換

解説

①配列を初期化

②POSTパラメータの判定→無ければスルー

③POSTパラメータを配列ごと渡し、$cleanに格納

④配列のキーは同じなので、以降は「$_POST」を「$clean」として使用

$clean[$key]の値はすべてサニタイズされた値を取得できる

その他

独自関数として別ファイルで作成しておき、使用時に呼び出す方法でもOK

//escape.php等としてファイル作成
<?php

  function escape($string)
{
  return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
}

呼び出す時

//同じ階層のファイルに適用する場合
require_once __DIR__ . 'escape.php';

<?php echo escape($string[$key]); ?>
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次
閉じる