0

私は自分のサイトのすべてのコードをその追加のセキュリティクッションのために準備されたステートメントに変換し始めたところですが、同じ質問にぶつかっています。

少し読んだ後、すべてのselectクエリでプリペアドステートメントを使用することにしましたが、これらのクエリのすべての変数をプリペアドステートメントの「パラメータ」として使用する必要があるかどうかはわかりません。

例えば:

  1. some_columnがNULLの場合
  2. ここで、some_column = $ _SESSION ['some-session-var']
  3. ここでsome_columnIN($ someArray)

また、疑問符を使用するのではなく、各条件に「名前」を付ける方法はありますか?これは以前にドキュメントで見たような気がしますが、それ以来見つけることができませんでした。

例:Where city_name = :cityName。もしそうなら、ここでパラメータをバインドするにはどうすればよいですか?

ありがとう、

エヴァン

4

1 に答える 1

0

はい。クエリに送信されるすべてのデータは、プレースホルダーを介して追加する必要があります。そうしないと、セキュリティがまったく失われます。

プリペアドステートメントは非常に制限されており、スカラー値のみをサポートしているため、最初と3番目の例では追加のコーディングが必要です(例はタグの下にたくさんあります)

あなたが言及した名前付きプレースホルダーはPDOに属していますが、mysqliはそれらをサポートしていません

于 2012-12-27T13:16:37.943 に答える