Sto cercando di filtrare le informazioni sensibili usando @sensitive_post_parameters
di Django. Ho pensato che anteporre queste annotazioni a una serie di funzioni specifiche sarebbe stato sufficiente, ma non funziona. Ho impostato il punto di interruzione all'interno di SafeExceptionReporterFilter
e si interrompe solo quando viene chiamato dallo AdminEmailHandler
e dallo non gli altri gestori. Cosa mi manca?È possibile utilizzare SafeReporterFilter di Django con qualcos'altro oltre a AdminEmailHandler?
risposta
Anche se si utilizza lo SafeExceptionReporterFilter
, le eccezioni continueranno a contenere dati sensibili (ad esempio le variabili ENV del server e altri dati di runtime).
Per evitare di esporre dati sensibili, non utilizzare questo filtro. Invece, scrivi il tuo middleware di Exception Handler e selettivamente (in modo ricorsivo?) Recupera te stesso i dati che vuoi nei log.
Vedere sys.exc_info
su come ottenere il traceback dell'eccezione e come utilizzarlo per le proprie esigenze.
Anche se si utilizza un CustomHandler, si sarà limitati con un gestore specifico e, per quanto ne so, i gestori di terze parti non utilizzeranno lo SafeExceptionReporterFilter
.
Infatti, ho provato a creare un gestore personalizzato come mi ha suggerito @aumo, ma era basato sul gestore GELF graypy e non è stato possibile aggiungere il filtro senza riscrivere il tutto. Per quanto riguarda i dati sensibili di runtime, so che il responsabile della sicurezza non mi lascerà loggare. Penso che andrò avanti e scriverò il mio middleware del proprio logger di eccezioni in quanto è l'unico modo in cui posso controllare come vengono divulgate le informazioni. Grazie ! –
È possibile scrivere un numero personalizzato Handler che utilizza django.views.debug.ExceptionReporter
per formattare l'eccezione.
uso Esempio di ExceptionReporter
:
from django.views.debug import ExceptionReporter
# exc_type, exc_value, traceback are a standard exception
# tuple as returned by sys.exc_info
reporter = ExceptionReporter(request, exc_type, exc_value, traceback)
html_report = reporter.get_traceback_html()
text_report = reporter.get_traceback_text()
ExceptionReporter
utilizzerà il ExceptionReporterFilter
definita dall'impostazione DEFAULT_EXCEPTION_REPORTER_FILTER
che per default è SafeExceptionReporterFilter
.
Dai un'occhiata alla AdminEmailHandler
s' implementation per ottenere informazioni su come creare un costume Handler
.
- 1. È possibile utilizzare Django con py2exe?
- 2. È possibile utilizzare Django con il framework Qooxdoo?
- 3. È possibile utilizzare valgrind insieme a Cygwin?
- 4. è possibile installare django beta con pip?
- 5. È possibile utilizzare django Piston su Google AppEngine?
- 6. È possibile utilizzare Django 1.2 su Google App Engine?
- 7. È possibile utilizzare Cruise Control con VB6?
- 8. È possibile utilizzare SQLAlchemy con Google Cloud SQL?
- 9. Non è possibile utilizzare UISearchController con UICollectionView?
- 10. È possibile utilizzare Vagrant con intelliJ?
- 11. Hadoop e Django, è possibile?
- 12. È possibile utilizzare connessioni persistenti con System.Net.Http.HttpClient?
- 13. È possibile utilizzare System.Transactions.TransactionScope con SqlBulkCopy?
- 14. È possibile utilizzare UDP con socket.io?
- 15. È possibile utilizzare Harmony (ES6) con JSXTransformer.js?
- 16. È possibile utilizzare unique_lock con un recursive_mutex?
- 17. è possibile utilizzare Eigen con c?
- 18. È possibile utilizzare un MemoryStream con FileStreamResult?
- 19. È possibile utilizzare Console2 con Powershell?
- 20. Non è possibile utilizzare "Analizza" con swift?
- 21. È possibile utilizzare una counter_cache con has_many?
- 22. è possibile utilizzare CASE con EXEC
- 23. È possibile utilizzare vim con il mouse
- 24. è possibile utilizzare batman.js con express?
- 25. È possibile utilizzare "exe installers" con pip?
- 26. È possibile configurare Gulp Livereload per Django?
- 27. È possibile utilizzare Vala senza GObject?
- 28. Atlassian Bamboo con Django e Python - Possibile?
- 29. È possibile utilizzare il tag di unione con i frammenti?
- 30. È possibile utilizzare dataset di grandi dimensioni con Excel 2013?
Hai impostato 'DEBUG = False'? – spg
Sì, ovviamente, ma grazie per averlo indicato. –