User Tools

Site Tools


ja:rule:inp:バリデーションする前に全ての変換作業を行う

This is an old revision of the document!


バリデーションする前に全ての変換作業を行う

バリデーションを行うデータはバリデーションを行う前に全ての変換作業を行わなければならない。変換作業を後で行うとバリデーションが無意味となる場合が多々ある。

  • Unicode文字の正規化(NFCなど)
  • 文字エンコーディング変換(SJISからUTF-8など)
  • 全角/半角変換
  • データがURL, BASE64などでエンコードされている場合のデコード処理

PHPの場合、$_GET, $_POST, $_COOKIE, $_FILES配列のデータはデコード後のデータが保存されている。

非適合コード例

if ($_GET['param'] !== strip_tags($_GET['param'])) {
  throw('Parameter Cannot contain HTML tags');
}
$param = mb_convert_kana($_GET['param'], 'knr');

適合コード例

$param = mb_convert_kana($_GET['param'], 'knr');
if ($param !== strip_tags($param)) {
  throw('Parameter Cannot contain HTML tags');
}

例外

[ルール/推奨事項の例外]

リスク評価

[ルール/推奨事項のリスク評価]

[評価例 - 英語表記に統一]

Rule Severity Likelihood Remediation Cost Priority Level
IDS05-J medium unlikely medium P4 L3

関連ガイドライン

参考文献

ja/rule/inp/バリデーションする前に全ての変換作業を行う.1457164012.txt.gz · Last modified: 2016/03/05 07:46 by yohgaki

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki