PHP はフィルター拡張機能を使用してパラメーター処理クラスを作成します。
http://www.blags.org/php-security-filter-function/
経験値:
まずファイルをインポートします
「filter.php」をインクルード
$email = CFilter::Email($_POST['email']);
検証が成功した場合は文字列が返され、そうでない場合は false が返されます。
- /**
- * @パラメータ検証関数
- * @method:
- * @license http://www.blags.org/
- * @created: July 02, 2011 11:00
- * @copyright 1997-2011 The Martin Group
- * @著者マーティン */
- abstract class CFilter
- {
- /**
- * 型
- * @var 配列
- */
- public static $varType = array(
- 'GET' => INPUT_GET,
- 'POST' => INPUT_POST,
- 'COOKIE'=> 'SERVER'=> INPUT_ENV
- );
- public static $filterType = array(
- 'STRING' = > FILTER_SANITIZE_STRING,
- FILTER_VALIDATE_INT,
- FILTER_VALIDATE_BOOLEAN,
- FILTER_VALIDATE_FLOAT,
- FILTER_VALIDATE_REGEX P ,
- 'URL' => FILTER_VALIDATE_URL,
- 'EMAIL' => FILTER_VALIDATE_EMAIL,
- 'IP' => FILTER_VALIDATE_IP,
- );
-
- /**
- * サポートフィルターリスト
- */
- プライベート静的関数 lists()
- {
- return filter_list();
- }
-
- / **
- * 検証タイプ
- * @param string $type
- */
- public static function filterType($type)
- {
- $filter_list = self::lists();
- return array_search($type,$filter_list) !== false true : false;
- }
-
- /**
- *
- * @param $setVarType
- */
- プライベート静的関数 getVarType($setVarType)
- {
- $setVarType = strtoupper($setVarType);
- return isset(self::$varType[$setVarType]) ? self::$ varType[$setVarType] : null;
- }
-
- /**
- *
- * @param string $setFilterType
- */
- プライベート静的関数 getFilterType($setFilterType)
- {
- $setFilterType = strtoupper($setFilterType);
- return isset(self::$filterType) [$setFilterType]) ? self::$filterType[$setFilterType] : null;
- }
-
- /**
- * パラメーターが存在するかどうかを確認します
- * @param string $setVarType
- * @param string $varName
- */
- public static function VarExists($setVarType,$varName)
- {
- $FilterVarType = self: :getVarType($setVarType);
- if (is_null($FilterVarType))
- return false;
- return filter_has_var(self::$varType[$FilterVarType], $varName);
- }
-
- /**
- *
- * @param string $setVarType
- * @param string $varName
- * @param string $filterType
- */
- public static function FilterInput($setVarType, $varName, $filterType = 'INT')
- {
- $FilterVarType = self::getVarType($setVarType);
- $filterType = self::getFilterType($filterType);
- if ( is_null($FilterVarType) || is_null($filterType))
- return false;
- return filter_input($FilterVarType, $varName, $filterType);
- }
-
- /**
- * 検証変数
- * @param string $var
- * @param string $filterType
- */
- public static function FilterVar($ var,$filterType)
- {
- $filterType = self::getFilterType($filterType);
- return filter_var($var, $filterType);
- }
-
- /**
- * 文字列
- * @param string $var
- */
- public static function String($ var)
- {
- return self::FilterVar($var,'STRING');
- }
-
- public static function Int($var)
- {
- return self::FilterVar($var,'INT');
- }
-
- public static function Boolean($var)
- {
- return self::FilterVar($var,'INT');
- }
-
- public static function Float($var)
- {
- return self::FilterVar($var) ,'FLOAT');
- }
-
- /**
- *
- * @param string $var
- * @param array $option array("options"=>array("regexp"=>"/^M(.*)/"))
- */
- public static function Regexp($var,$option)
- {
- $filterType = self::getFilterType($filterType);
- return filter_var($ var, $filterType, $option);
- }
-
- public static function Url($var)
- {
- return self::FilterVar($var,'URL');
- }
-
- public static function Email($var)
- {
- return self::FilterVar($var,'EMAIL');
- }
-
- public static function Ip($var)
- {
- return self::FilterVar($var,'IP');
- }
-
- }
-
-
-
- コードをコピー
|