-1

GET および POST データに real_escape_string を使用する代わりに、暗号化 (base64 など) を使用できますか?

アプリケーションの速度が低下することはわかっていますが、セキュリティはどうですか?

4

4 に答える 4

5

ない。

どちらのオプションも同様に役に立たず、エラーが発生しやすくなります。

  • まず、SQL クエリとデータベースを区別する必要があります。後者のデータ変換はまったく必要ありません。
  • 次に、SQL クエリ用にデータを適切にフォーマットする必要があります。それを「逃れる」のではありません。
  • 最後に、フォーマット ルールは非常に複雑で平均的な PHP ユーザーには理解できないため、代わりに準備済みステートメントを使用することをお勧めします。
于 2013-09-13T15:09:52.730 に答える
0

クライアントからアプリケーションへの通信を保護する手段としてクライアント側の暗号化を実行する場合は、HTTPS / SSL 暗号化が自分で行うよりも好ましい代替手段であることに気付くかもしれません。ハンドローリングの暗号化と復号化は、アプリケーションの通信に設計の複雑さの別の要素をもたらします。これは、設計方法によっては簡単に回避できる場合があります。

編集: アプリケーションサーバーでデータをデコードする必要があるため、データを暗号化してもインジェクション攻撃のリスクがなくなるわけではありません。巧妙な攻撃者は、送信前に暗号化方式をピギーバックし、好きなペイロードを注入することができます。

于 2013-09-13T15:11:47.670 に答える
0

まず、base 64 は暗号化とは関係ありません。これは、任意のバイナリ データをテキストとしてエンコードし、必要に応じてデコードすることを可能にするエンコードメカニズムです。

次に、準備されたステートメント(または少なくともパラメーターがバインドされた API) を使用します*_real_escape_string

于 2013-09-13T15:12:20.993 に答える
-1

誰でも自分の悪いインジェクションをbase64でbase64エンコードできるため、まったく良い考えではありません。また、6b4 でエンコードされたデータのカスタム ソルトをリバース エンジニアリングするのはかなり簡単です。

于 2013-09-13T15:02:46.560 に答える