Ich führe eine Produktion Django 1.5-Anwendung.
Vor kurzem gab es eine Menge Lärm über verschiedene Schwachstellen im Zusammenhang mit dem Laden von JSON-, XML- und YAML-Objekten. Wenn ich richtig verstehe, wurde die Eingabe sorgfältig erstellt, um Fehler in den Ladefunktionen auszunutzen.
Nun habe ich keine Ahnung, wo Django (oder die Dutzende von Apps von Drittanbietern, die wir verwenden) jedes dieser Protokolle verwendet. Wie kann ich vor solchen Sicherheitslücken geschützt werden? Muss ich sicherstellen, dass Django JSON, XML und YAML sicher lädt?
Django akzeptiert standardmäßig keine codierten Benutzereingaben in diesen Formaten und in der Regel auch keine Apps von Drittanbietern, aber es lohnt sich, die Teile zu überprüfen, die für den Benutzer sichtbar sind. Die Großen werden API-Anbieter (Tastypie, Django REST Framework usw.) sein. Wenn Sie auf aktuellen Versionen sind, sollten Sie sicher sein, aber es ist es wert, getestet / bestätigt werden.
Wenn Sie aus diesen Formaten etwas in Ihre App laden, verwenden Sie defusedxml
und YAMLs safe_load
Methode. Die Standardbibliothek json
Modul sollte vor diesen Arten von Exploits sicher sein.