PHP での MySQL 接続を使用したパラメータ化されたクエリ
データベース アプリケーションのセキュリティを確保することが最優先であり、パラメータ化されたクエリは SQL に対する重要な防御手段です。注射攻撃。この手法には、直接 SQL 構文ではなくパラメーターとしてユーザー入力を処理することが含まれており、悪意のある文字操作を効果的に防止します。
コード内で、ユーザー名とパスワードのパラメーターの連結を使用する安全でないアプローチは、インジェクションに対して脆弱です。これを修正するには、次の手順に従います。
パラメータ化されたクエリを準備します。
<code class="php">$stmt = mysqli_prepare($dbc, "SELECT * FROM users WHERE username = ? AND password = ?");</code>
これにより、プレースホルダー (?) を含むステートメントが準備されます。渡されるパラメータ。
バインドパラメータ:
<code class="php">mysqli_stmt_bind_param($stmt, "ss", $userName, $userPass);</code>
ここで、「ss」はパラメータのタイプ (2 つの文字列) を指定します。 $userName と $userPass はこれらのパラメータにバインドされています。
ステートメントを実行します:
<code class="php">mysqli_stmt_execute($stmt);</code>
これにより、バインドされたパラメータ化されたクエリが実行されます。 parameters.
Fetch Results:
<code class="php">$row = mysqli_stmt_fetch($stmt);</code>
これにより結果行が取得され、その行の存在やさらなる操作を確認できます。
追加の推奨事項:
これらの手順に従うことで、PHP アプリケーションとそのセキュリティを強化できます。 SQL インジェクションの脆弱性から保護します。パラメータ化されたクエリは最新のデータベース プログラミングにおいて不可欠な手法であり、ユーザー入力処理には常に使用する必要があることを覚えておいてください。
以上がSQL インジェクションを防ぐために PHP で MySQL 接続を使用してパラメータ化されたクエリを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。