2012-08-16 10 views

risposta

3

Sfortunatamente, non conosco alcun modo per disabilitare la registrazione di MySQL per singole istruzioni. La documentazione MySQL raccomanda di tenere i registri depositati per questo motivo:

Da 5.2.3. The General Query Log

partire da MySQL 5.6.3, le password in dichiarazioni scritte al generale registro query vengono riscritti dal server indenni da questo letteralmente in puro testo . La riscrittura della password può essere soppressa per il registro di query generale avviando il server con l'opzione --log-raw. Questa opzione può essere utile per scopi diagnostici, per visualizzare il testo esatto delle istruzioni come ricevuto dal server, ma per motivi di sicurezza non è consigliato per uso di produzione.

Prima di MySQL 5.6.3, le parole chiave in istruzioni non vengono riscritte e il registro delle query generali deve essere protetto. Vedere la Sezione 6.1.2.2, "Administrator Guidelines for Password Security".

Sfortunatamente, questo (dal 5.6.3) in-built-anti-password-logging va solo per la funzione MySQL PASSWORD().

vedo alcune soluzioni possibili per il problema:

  1. Per ogni query: disabilitare il registro, eseguire la query, attivare il registro
  2. hash della password nell'applicazione stessa (nel tuo caso, php sha)
  3. fissano il file di log così nessuno può vedere le dichiarazioni
  4. Log verso un'applicazione che rimuove le password si
+0

Dove hai trovato l'informazione che funziona solo per PASSWORD()? Le [Linee guida per l'amministratore per la sicurezza delle password] (http://dev.mysql.com/doc/refman/5.1/en/password-security-admin.html) sono come un elenco di esempi (CREA UTENTE, CONCORSO, IMPOSTA PASSWORD, PASSWORD) senza garanzia di completezza. – mgutt

+0

Una quinta opzione: pianificare un cron job per eseguire 'file_put_contents ('/ log_file_path', preg_replace ('# \ b (AES _ (?: EN | DE) CRYPT) \ s * \ (\ s * ([\' ^" ]) (. +?) \ 2 \ s * \) \ b # i ',' $ 1 ($ 2 ***** $ 2) ', file_get_contents ('/log_file_path ')); ' – DaveRandom

+0

Anche io vorrei vedere una fonte autorevole per l'affermazione che funziona solo con 'PASSWORD()' - Mi aspetterei almeno che funzioni anche con le query 'SET PASSWORD' - ma, @mgutt sospetto che * non * funzioni con' AES_ENCRYPT '/' AES_DECRYPT' perché non sono solo usati per le password, sono funzioni di crittografia generali – DaveRandom

Problemi correlati