User Tools

Site Tools


ja:rule:inp:デフォルトで初期化される外部入力をバリデーションする

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
ja:rule:inp:デフォルトで初期化される外部入力をバリデーションする [2016/03/20 02:54] yohgakija:rule:inp:デフォルトで初期化される外部入力をバリデーションする [2017/07/02 02:58] (current) yohgaki
Line 39: Line 39:
 $_GET/$_POST/$_COOKIE配列を直接利用すれば外部入力であることは明白だが、別の変数に代入すると外部入力であるかどうか不明確になる。 $_GET/$_POST/$_COOKIE配列を直接利用すれば外部入力であることは明白だが、別の変数に代入すると外部入力であるかどうか不明確になる。
  
 +<color #ed1c24>**非適合コード**</color>
 <code php> <code php>
 $id = $_GET['id']; $id = $_GET['id'];
Line 45: Line 46:
 キャストはバリデーションの代替とはならない。 キャストはバリデーションの代替とはならない。
  
 +<color #ed1c24>**非適合コード**</color>
 <code php> <code php>
 $id = (int)$_GET['id']; $id = (int)$_GET['id'];
Line 54: Line 56:
 ===== 適合コード例 (filter_input) ===== ===== 適合コード例 (filter_input) =====
  
 +<color #00a2e8>**適合コード**</color>
 <code php> <code php>
 $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT, ['min_range'=>100, 'max_range'=>PHP_INT_MAX]); $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT, ['min_range'=>100, 'max_range'=>PHP_INT_MAX]);
Line 65: Line 68:
 ===== 適合コード例 (is_numeric/is_int and range check)===== ===== 適合コード例 (is_numeric/is_int and range check)=====
  
 +<color #00a2e8>**適合コード**</color>
 <code php> <code php>
 if (!is_numeric($_GET['id']) || $_GET['id'] < 100 || is_int($_GET['id']*1) { if (!is_numeric($_GET['id']) || $_GET['id'] < 100 || is_int($_GET['id']*1) {
Line 85: Line 89:
 </code> </code>
  
 +
 +<color #ed1c24>**非適合コード**</color>
 <code php> <code php>
 <?php <?php
Line 103: Line 109:
 ===== 適合コード例 (mb_check_encoding)===== ===== 適合コード例 (mb_check_encoding)=====
  
 +<color #00a2e8>**適合コード**</color>
 <code php> <code php>
 <?php <?php
ja/rule/inp/デフォルトで初期化される外部入力をバリデーションする.1458442492.txt.gz · Last modified: 2016/03/20 02:54 by yohgaki

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki