ホームページ > バックエンド開発 > PHPチュートリアル > PHP インジェクション攻撃を防ぐ効果的な方法

PHP インジェクション攻撃を防ぐ効果的な方法

WBOY
リリース: 2024-05-01 17:48:02
オリジナル
1136 人が閲覧しました

PHP インジェクション攻撃を防ぐ方法には次のようなものがあります。 パラメーター化されたクエリを使用して SQL インジェクションを防ぎます。フィルター入力関数を使用して、渡された値をフィルターします。特殊文字をエスケープするには、mysqli_real_escape_string() 関数を使用します。ホワイトリストとブラックリストの検証を使用して、危険な文字やパターンをフィルタリングします。

预防 PHP 注入攻击的有效方法

PHP インジェクション攻撃を防ぐ効果的な方法

PHP インジェクション攻撃は、PHP アプリケーションの脆弱性を悪用して悪意のあるデータを挿入する方法です。 SQL クエリの攻撃タイプ。このような攻撃は、データ漏洩、データベース破損、さらにはシステム乗っ取りにつながる可能性があります。

予防方法

1. パラメータ化されたクエリ

パラメータ化されたクエリを使用すると、SQL インジェクション攻撃を防ぐことができます。この手法では、プレースホルダー (?) を使用して SQL クエリ内の実際の値を置き換え、クエリを実行する前にその値を MySQL に渡します。

サンプル コード:

$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
ログイン後にコピー

2. フィルター関数

を使用して入力をフィルターし、インジェクション攻撃を防ぎます。受信値は、PHP の filter_input() 関数を使用してフィルタリングできます。

サンプルコード:

$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
ログイン後にコピー

3. 特殊文字をエスケープするには、mysqli_real_escape_string()# を使用できます。 # # 関数は、入力された特殊文字が SQL コマンドとして解釈されないようにエスケープします。

サンプル コード:

$username = mysqli_real_escape_string($conn, $username);
ログイン後にコピー

4. ホワイトリストとブラックリストの検証を使用する

ホワイトリストとブラックリストの検証により、危険な文字を除外できます。またはパターン。

サンプル コード:

// 白名单
$allowed_chars = ['a', 'b', 'c'];
if (!in_array($char, $allowed_chars)) {
  // 输出错误消息
}

// 黑名单
$banned_chars = ['<', '>', '"', '\''];
if (preg_match('/[' . implode('', $banned_chars) . ']/', $input)) {
  // 输出错误消息
}
ログイン後にコピー

実用的なケース

次は、パラメーター化されたクエリとフィルター関数の使用方法のデモンストレーションです。インジェクション攻撃を防ぐには コード例:

// 获取用户输入
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);

// 准备和执行查询
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
ログイン後にコピー
結論

これらの予防策を実装することで、PHP アプリケーションをインジェクション攻撃から保護できます。

以上がPHP インジェクション攻撃を防ぐ効果的な方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート