6

ときどき MySQL ログを調べていると、パスワードがプレーンテキストで表示されているAES_ENCRYPT/AES_DECRYPTリクエストに出くわすことがあります。

PHP 内でログを作成すると、ログを削除できます。

しかし、MySQL の一般的な/遅いクエリ ログについてはどうでしょうか。それらのオプションは利用可能ですか、それともログに保存されない mySQL 変数を設定することは可能ですか?

4

1 に答える 1

3

残念ながら、個々のステートメントの MySQL ロギングを無効にする方法を私は知りません。MySQL のドキュメントでは、この理由からログを保護しておくことを推奨しています。

5.2.3から。一般的なクエリ ログ

MySQL 5.6.3 の時点で、一般的なクエリ ログに書き込まれるステートメントのパスワードは、サーバーによって書き換えられ、文字どおりプレーン テキストでは発生しません。--log-raw オプションを指定してサーバーを起動すると、一般的なクエリ ログのパスワードの書き換えを抑制することができます。このオプションは、サーバーが受信したステートメントの正確なテキストを確認するための診断目的に役立ちますが、セキュリティ上の理由から、本番環境での使用はお勧めしません。

MySQL 5.6.3 より前では、ステートメント内のパスワードは書き換えられず、一般的なクエリ ログは保護する必要があります。セクション 6.1.2.2、「<a href="http://dev.mysql.com/doc/refman/5.1/en/password-security-admin.html" rel="nofollow">パスワード セキュリティに関する管理者ガイドライン」を参照してください。 .

残念ながら、(5.6.3 以降) 組み込みのアンチパスワード ロギングは、MySQL PASSWORD() 関数に対してのみ有効です。

あなたの問題に対していくつかの可能な解決策があります:

  1. 各クエリ: ログを無効にし、クエリを実行し、ログを有効にします。
  2. アプリケーション自体でパスワードをハッシュします(あなたの場合、php sha)
  3. 誰もステートメントを見られないようにログファイルを保護する
  4. パスワード自体を削除するアプリケーションにログインします
于 2012-08-16T08:43:36.780 に答える