データが適切な形式である場合、データを検証=決定します。
データをサニタイズ=データから任意の不正な文字を削除します。
PHPフィルタの拡張
PHPフィルタは、外部入力を検証し、サニタイズするために使用されています。
PHPフィルタ拡張機能は、ユーザの入力をチェックするために必要な機能の多くを持っており、データの検証がより簡単かつ迅速にするために設計されています。
filter_list()関数は、PHPフィルタの拡張が提供するものをリストするために使用することができます。
例
<table>
<tr>
<td>Filter Name</td>
<td>Filter ID</td>
</tr>
<?php
foreach (filter_list()
as $id =>$filter) {
echo '<tr><td>' .
$filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
»実行例 なぜフィルタを使用しますか?
多くのWebアプリケーションでは、外部からの入力を受け取ります。 外部入力/データが使用できます
- フォームからのユーザ入力
- Cookies
- Webサービスのデータ
- サーバー変数
- データベースのクエリ結果
あなたは常に外部データを検証する必要があります!
無効な送信されたデータは、セキュリティ上の問題につながるとあなたのWebページを破ることができます!
PHPフィルターを使用することにより、アプリケーションが正しい入力を取得することを確認することができます!
PHPのfilter_var()関数
filter_var()関数は、検証データをサニタイズ両方。
filter_var()関数は、指定したフィルタで単一の変数をフィルタリングします。 これは、データの2枚を取ります。
- あなたがチェックしたい変数
- 使用のチェックのタイプ
文字列をサニタイズ
次の例では、使用していますfilter_var()文字列からすべてのHTMLタグを削除する機能を:
例
<?php
$str = "<h1>Hello World!</h1>";
$newstr
= filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
»実行例 整数を検証します
次の例では、使用していますfilter_var()変数$ intは整数であるかどうかを確認する機能を。 $ int型が整数である場合は、上記のコードの出力は次のようになります。 "Integer is valid" 。 $ int型が整数でない場合、出力は次のようになります。 "Integer is not valid" 。
例
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) ===
false) {
echo("Integer is valid");
} else {
echo("Integer is not
valid");
}
?>
»実行例 ヒント: filter_var() 0とし、問題
$ int型が0に設定された場合は、上記の例では、上記の関数は戻ります"Integer is not valid" 。 この問題を解決するために、以下のコードを使用します。
例
<?php
$int = 0;
if (filter_var($int,
FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) ===
false) {
echo("Integer is valid");
} else {
echo("Integer is not
valid");
}
?>
»実行例 IPアドレスを検証します
次の例では、使用していますfilter_var()変数$ IPが有効なIPアドレスであるかどうかを確認するための機能を:
例
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) ===
false) {
echo("$ip is a valid IP address");
} else {
echo("$ip
is not a valid IP address");
}
?>
»実行例 サニタイズと電子メールアドレスを検証します
次の例では、使用していますfilter_var()最初、それが有効な電子メールアドレスであるかどうかを確認、その後、$メール変数からすべての不正な文字を削除する機能を:
例
<?php
$email = "[email protected]";
// Remove all illegal
characters from email
$email = filter_var($email,
FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) ===
false) {
echo("$email is a valid email address");
} else {
echo("$email
is not a valid email address");
}
?>
»実行例 URLをサニタイズと検証
次の例では、使用していますfilter_var()最初の$ URLが有効なURLであるかどうかを確認、その後、URLからすべての不正な文字を削除する機能を:
例
<?php
$url = "http://www.w3ii.com";
// Remove all illegal characters from a url
$url = filter_var($url,
FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) ===
false) {
echo("$url is a valid URL");
} else {
echo("$url
is not a valid URL");
}
?>
»実行例 完全なPHPフィルタ参照
すべてのフィルタ関数の完全なリファレンスについては、当社の完全に行くPHPフィルタ参照。 使用可能なオプションとフラグを参照するには、各フィルタを確認してください。
参照は、各関数の簡単な説明、および使用例を、含まれています!