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:
- Per ogni query: disabilitare il registro, eseguire la query, attivare il registro
- hash della password nell'applicazione stessa (nel tuo caso, php sha)
- fissano il file di log così nessuno può vedere le dichiarazioni
- Log verso un'applicazione che rimuove le password si
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
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
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