3

ユーザー入力をクリーンアップする最も効率的な方法を調べてきました。私のアプリケーションは、ユーザーの認証に使用される単純なポスト リクエストです。オンラインで見ると、これを行うための「最良の」方法が十数個見つかります。これらのメソッドの多くは、非推奨の php 関数を使用しているか、過度に複雑に見えます。SQL データベースに接続するために、PDO クラスを使用します。

自分の関数を探しているときに、これに出くわしました:

バインドされたパラメーターを持つ準備済みステートメントは、移植性が高く、便利で、SQL インジェクションの影響を受けないだけでなく、サーバー側とクライアント側の両方がクエリのコンパイルされた形式をキャッシュできるため、補間されたクエリよりもはるかに高速に実行できます。

私はすでに準備メソッドを使用してステートメントを作成しています。これは、SQL インジェクション攻撃に対して安全であることを意味しますか? 他に何を心配する必要がありますか?

4

2 に答える 2

2

PDO を使用して準備済みステートメントを介してすべてのユーザー データをバインドすると、インジェクションから安全になります。バインドしない SQL ステートメント (並べ替え順序など) に入れる変数は、攻撃の対象となります。

于 2012-10-11T15:12:36.177 に答える
1

@Ray はすでに質問の最初の部分に回答しています。2番目の部分では、ユーザーを認証しているので、パスワードをどのように保存するかについても心配する必要があります.saltで一方向の暗号化ハッシュを使用してください. そして、元のソルトを使用してユーザーが入力したパスワードからハッシュを再計算し、データベース エントリと一致するかどうかを確認します。可能であれば、認証手順にも https を使用してください。

于 2012-10-11T15:16:50.573 に答える