Errori di scrittura nel file di log di Apache da PHP: ci sono delle insidie?

2

Sto aggiornando un'applicazione per scrivere un po 'più di errori dettagliati nel file di log del sistema (in questo caso /var/log/apache2/mysite_error_log ). Spero di non aver fatto la proverbiale domanda stupida - ma ci sono potenziali problemi con l'inclusione di dati passati dall'utente come argomenti non validi passati a una pagina nel file di log di Apache?

Il file di registro è di testo e di lettura / scrittura sul server Web, ma non voglio scrivere testo / dati potenzialmente dannosi che potrebbero essere sfruttati se il file di registro viene successivamente aperto / letto tramite la riga di comando.

    
posta a coder 07.11.2014 - 19:30
fonte

2 risposte

1

Sì. Questi dati dovrebbero essere utili per aiutare gli errori di debug, tuttavia, ci sono almeno alcuni (forse più) potenziali problemi di sicurezza da considerare:

  • Qualcuno dei dati è sensibile alla privacy (come numeri di previdenza sociale, password, indirizzi, ecc ...?) Se così fosse, potrebbero esserci dei dubbi sulla privacy, ma quelle più di quelle preoccupazioni dovrebbero già esistere con il sito web Comunque.

  • Le password di accesso sarebbero eccezionalmente pericolose in quanto sarebbe una memorizzazione di testo in chiaro della password dell'utente, il che è molto brutto. Se un utente malintenzionato sarebbe in grado di aprire il file di registro, potrebbe guardare e poi guardare tutte le password inserite! Su questo punto, un amministratore potrebbe anche guardare la password dell'utente, che non dovrebbe accadere (perché l'amministratore potrebbe impersonare l'utente), quindi raccomando vivamente di non registrare il contenuto delle password.

  • I file sono adeguatamente protetti? Dovrebbero essere accessibili solo dagli amministratori. Il sistema deve essere aggiornato in modo coerente per scoraggiare potenziali aggressori dall'elevare i loro privilegi a root per leggere i dati.

risposta data 07.11.2014 - 20:00
fonte
1

Non scrivere direttamente i file! Utilizzare un servizio di registrazione (o nel caso di error_log di Apache basta stampare nello stderr). E assicurati che i log siano al di fuori della root del documento - se il server web può essere ingannato nel servirli come file PHP, allora si ha una vulnerabilità maggiore nell'invio di codice.

if the log file is subsequently opened/read via command line.

È difficile. Aperto con cosa? Trasformare l'output con (per esempio) htmlentities dovrebbe ridurre un po 'la superficie di attacco, ma ho il sospetto che ci stiamo dirigendo verso la sicurezza del cappello di lamina di metallo qui.

    
risposta data 08.11.2014 - 02:12
fonte

Leggi altre domande sui tag