2012-08-16 18 views

Respuesta

3

Desafortunadamente, no conozco ninguna manera de deshabilitar el registro de MySQL para declaraciones individuales. La documentación de MySQL aconseja mantener los registros garantizados por esta razón:

De 5.2.3. The General Query Log

A partir de MySQL 5.6.3, las contraseñas en los estados escritos en el registro general de consulta son reescritos por el servidor no se produzca literalmente en texto simple . La reescritura de la contraseña se puede suprimir para el registro de consulta general iniciando el servidor con la opción --log-raw. Esta opción puede ser útil para fines de diagnóstico, para ver el texto exacto de las declaraciones como recibidas por el servidor, pero por razones de seguridad no se recomienda para uso de producción.

Antes de MySQL 5.6.3, las contraseñas en las sentencias no se reescriben y el registro de consultas generales debe estar protegido. Vea la Sección 6.1.2.2, "Administrator Guidelines for Password Security".

Desafortunadamente, eso (desde 5.6.3) incorporado anti-password-logging va solo para la función MySQL PASSWORD().

veo algunas soluciones posibles para su problema:

  1. Para cada consulta: deshabilitar el registro, ejecute la consulta, habilitar el registro de
  2. hash de la contraseña en su propia aplicación (en su caso, php sha)
  3. asegurar los archivos de registro por lo que nadie puede ver las declaraciones
  4. Acceder a una aplicación que elimina la propia
+0

contraseñas ¿Dónde encontró la información que funciona para PASSWORD() solamente? Las [Directrices del administrador para la seguridad de contraseñas] (http://dev.mysql.com/doc/refman/5.1/en/password-security-admin.html) suenan como una lista de ejemplos (CREAR USUARIO, CONCEDER, CONFIGURAR CONTRASEÑA, CONTRASEÑA) sin garantía de integridad. – mgutt

+0

Una 5ª opción: programar una tarea cron para ejecutar 'file_put_contents ('/ log_file_path', preg_replace ('# \ b (AES _ (?: EN | DE) CRIPTO) \ s * \ (\ s * ([\' ^" ]) (. +?) \ 2 \ s * \) \ b # i ',' $ 1 ($ 2 ***** $ 2) ', file_get_contents ('/log_file_path ')); ' – DaveRandom

+0

A mí también me gustaría ver una fuente autorizada para la declaración de que solo funciona con 'PASSWORD()' - Al menos esperaría que también funcionara con las consultas 'SET PASSWORD' - pero, @mgutt Sospecho que * no * funcionará con' AES_ENCRYPT '/' AES_DECRYPT' porque no solo se usan para contraseñas, sino que son funciones generales de cifrado. – DaveRandom