Webアプリケーションを開発する場合、ユーザーが入力したデータはしばしば制御できません。効果的にフィルタリングされていない場合、XSS、SQLインジェクション、その他の攻撃など、セキュリティリスクを引き起こすのは非常に簡単です。この記事では、PHPで一般的に使用されるデータフィルタリングテクノロジーを紹介し、実際のコードに基づいてさまざまな入力状況に対処する方法を示します。
ユーザーがサビされた文字列には、HTMLタグまたは悪意のあるスクリプトが含まれている場合があり、クロスサイトスクリプト攻撃(XSS)が発生しやすいです。 htmlspecialchars()を使用できます
数値タイプの入力を処理する場合、それらが正しい形式で予想される範囲内であることを確認する必要があります。 phpは、 filter_validate_floatまたはfilter_validate_intをfilter_var()を提供して、検証を実装します。
サンプルコード:
$input = "3.14";
$filteredInput = filter_var($input, FILTER_VALIDATE_FLOAT);
if ($filteredInput !== false) {
if ($filteredInput >= 0 && $filteredInput <= 10) {
echo "入力された番号はにあります 0 到着 10 間。";
} else {
echo "入力された番号は有効な範囲内ではありません。";
}
} else {
echo "入力は有効な数字ではありません。";
}
ユーザーが登録またはログインする場合、メールアドレスのフォーマット検証が不可欠です。PHPの組み込みfilter_validate_emailを使用して、入力が法的メールボックスであるかどうかを簡単に確認します。
サンプルコード:
$input = "example@example.com";
$filteredInput = filter_var($input, FILTER_VALIDATE_EMAIL);
if ($filteredInput !== false) {
echo "有効なメールアドレスを入力します。";
} else {
echo "入力されたものは有効な電子メールアドレスではありません。";
}
ユーザーが提供するURLを処理する場合、そのフォーマットがURL仕様に準拠しているかどうかを判断する必要があります。 PHPのfilter_validate_urlフィルターは、このような検証に使用できます。
サンプルコード:
$input = "https://www.example.com";
$filteredInput = filter_var($input, FILTER_VALIDATE_URL);
if ($filteredInput !== false) {
echo "入力は有効です URL。";
} else {
echo "入力は有効なものではありません URL。";
}
ユーザー入力の信頼性は保証できないため、Web開発では、データフィルタリングはシステムのセキュリティと安定性を確保するための重要なリンクです。 htmlspecialchars()やfilter_var()などのPHPによって提供されるフィルタリング関数を使用することにより、開発者は違法または悪意のある入力を効果的に識別してブロックできます。
実際の開発では、ビジネスニーズとセキュリティポリシーに基づいてフィルタリング方法を合理的に選択する必要があり、データ処理の整合性とセキュリティを確保するために、データベースレイヤーとフロントエンド検証と組み合わせて多層保護を実現する必要があります。