Quanta parte di un'applicazione Django potrebbe essere decodificata se il proprietario dimentica di disattivare la modalità di debug?

3

Ho scritto un'app di Django e l'ho quasi pubblicata con la modalità di debug. La documentazione di Django indica

Never deploy a site into production with DEBUG turned on.

Did you catch that? NEVER deploy a site into production with DEBUG turned on.

One of the main features of debug mode is the display of detailed error pages. If your app raises an exception when DEBUG is True, Django will display a detailed traceback, including a lot of metadata about your environment, such as all the currently defined Django settings (from settings.py).

Quindi mi chiedo quante informazioni potrebbe effettivamente ottenere un utente malintenzionato in un'app tipica? Login utenti? Tutto il tuo codice?

    
posta personjerry 11.11.2015 - 01:00
fonte

1 risposta

3

Questo dipende strongmente dall'applicazione in questione.

Ad esempio, supponiamo che tu abbia un'app di web django con errori programmatici manny (non vulnerabilità). In questo caso, potresti generare molti messaggi di errore estremamente dettagliati. Se tu fossi in grado di rivelare realmente l'intero contenuto di settings.py, allora ti troverei nei guai. La stringa di connessione al database, il token CSRF, le chiavi della cache, probabilmente le chiavi AWS ecc. Sono tutte memorizzate lì. Potresti anche essere in grado, come menzionato, di decodificare alcune logiche applicative. Questo comportamento può portare a un attacco più mirato come rendere più facile per me trovare XSS o SQL Injection.

Ora prendiamo il caso opposto. Distribuisci un'app che è impeccabile. L'impatto è molto più basso, in quanto non si stanno rivelando abbastanza dati. Tuttavia, data la dimensione del codice di base, l'applicazione non è e non sarà impeccabile, quindi fai attenzione a non distribuire mai in modalità di debug.

    
risposta data 11.11.2015 - 01:54
fonte

Leggi altre domande sui tag