2015-06-28 11 views
5

Das könnte eine dumme Frage sein und eine offensichtliche Antwort haben, aber ich habe meine 404 und 500 Fehlerhandler getestet, was bedeutete, dass ich Debug auf False umstellen musste. Ich ging zur Django Admin-Seite und bemerkte, dass statische Dateien nicht geliefert wurden.Warum statische Dateien nicht sicher sind

Ich verstehe, dass sie über Apache weitergeleitet werden sollten, da das Dienen von statischen Dateien über Django unsicher ist. Allerdings verstehe ich nicht ganz, warum es ein Sicherheitsrisiko darstellt, statische Dateien direkt über Django zu liefern.

+1

Ich glaube nicht, dass es unsicher ist. Das eigentliche Problem ist, dass es ineffizient ist. –

+0

Dann ist es ein wenig irreführend, '--insecure' Argument zu verwenden, um statische Dateien mit' debug = False' zu ​​erzwingen. – Mirac7

+0

Mit direkt meinst du runserver? – cdvv7788

Antwort

10

Hier ist, was die Django 1.8 Dokumentation zu diesem Thema sagt:

--insecure

Verwenden Sie die --insecure Option mit der Static App dient der statischen Dateien zu zwingen, selbst wenn die DEBUG Einstellung False ist. Indem Sie dies verwenden, erkennen Sie die Tatsache an, dass es grob ineffizient und wahrscheinlich unsicher ist. Dies ist nur für die lokale Entwicklung gedacht, sollte niemals in der Produktion verwendet werden und ist nur verfügbar, wenn sich die staticfiles App in der Projekteinstellung INSTALLED_APPS Ihres Projekts befindet.

Wie Sie sehen können, sagen sie "grob ineffizient" und "wahrscheinlich unsicher". Sie haben nicht "definitiv unsicher" oder "unsicher" gesagt. Ich denke, dass sie darauf hinweisen, dass sie keine gründliche Sicherheitsanalyse der App staticfiles und ihrer Interaktionen mit dem Rest von Django durchgeführt haben.

Für mich sollte der "grob ineffiziente" Teil ausreichen, um Sie daran zu hindern, statische Inhalte zu liefern. Es ist einfach, es besser zu machen ... beginnend mit dem collectstatic Befehl.


Einige Benutzer mehr führen mich zu diesem Eintrag Google Groups, in Reaktion auf jemanden zu fragen, warum --insecure unsicher ist.

Von: Malcolm Tredinnick

Nichts kann als sicher angesehen werden, wenn es für Sicherheit ausgelegt und geprüft. Das haben wir weder mit dem statischen Dateiserver gemacht. Es darf nicht vorhandene Sicherheitslöcher haben, aber es sollte nicht als sicher betrachtet werden , weil das kein Designziel ist. Ein sicherer Dateiserver müsste beispielsweise nach Ressourcen Allokationsproblemen suchen, so dass die Bereitstellung einer sehr großen Datei keinen Denial-of-Service-Angriff darstellt. Das erfordert viel zusätzlichen Code und Pipeline-Verwaltung, die es nicht wert ist, in etwas, das nur für Entwicklungszwecke ist, zu setzen.

Grüße,

Malcolm

..., die meine Interpretation unterstützt. (Aber ich stimme nicht mit der Art und Weise überein, wie er Sicherheit und Verwundbarkeit mit DoS-Angriffen in Verbindung bringt.)