Es gibt wahrscheinlich hier keinen praktikablen MITM-Angriff. Unter der Annahme von Ubuntu und Django gibt es zwei große Faktoren, die sich gegen einen Angreifer verschwören:
-
Die Standard-Host- und DNS-Konfiguration von Ubuntu löst localhost
mithilfe einer fest codierten Einstellung auf. Es wird nicht einmal eine DNS-Abfrage durchgeführt. Sie können dies ändern ... Aber nicht stattdessen :)
-
Django bindet standardmäßig an 127.0.0.1:8000
. Um Sie vollständig zu unterstützen, müsste der Angreifer den von Django bereitgestellten Datenverkehr abfangen, hat jedoch keinen Zugriff.
Die Websicherheit ist jedoch kompliziert. Es kann Dinge geben, die ein Angreifer ausnutzt, um eine Auswirkung auf Sie zu haben.
Externe Ressourcen müssen sicher sein
Viele von uns binden Dritte ein , CDN-gehostete Dateien. Jquery, Bootstrap usw. Wenn dies http: //
oder //
ist (denken Sie daran, dass der Entwickler-Server kein TLS verwendet), kann dies einem Angreifer die Möglichkeit dazu geben MITM diese Dateien und fügen Sie Live-Skripte in Ihre Seiten ein.
Um die lokale Entwicklung außerhalb einer Internetverbindung zu gewährleisten, ist es in jeder Hinsicht am besten, alle Inhalte selbst zu hosten.
Click-Jacking- und Iframe-Techniken
Nur weil sie nicht auf Ihren lokal laufenden Server zugreifen können, heißt das nicht, dass sie Ihren Browser nicht anweisen können, darauf zuzugreifen. Cross Origin Origin Security wird sie (wahrscheinlich) davon abhalten, Dinge direkt damit zu tun, aber sie könnten es in einen Iframe stecken. Dies ist eine Art Reverse-Clickjack.
Für den Benutzer würde dies nur wie Ihre Website aussehen. Sie könnten sogar alle URLs an ihrem Ende erfassen und sie an den Frame weiterleiten. Wenn es eine öffentliche Website wäre, könnten sie auch herausfinden, auf was Sie geklickt haben.
Aber natürlich verwenden Sie bereits django-secure
, nicht wahr? Ich würde es empfehlen. Bei einer Einstellung werden bei jeder Django-Anfrage X-Frame-Optionen: DENY
-Header gesendet. Alternativ gibt es eine in Django integrierte Option, die dasselbe tut. Ich empfehle django-secure
, weil es viel mehr kann.
Ihre Sicherheit in einem feindlichen Netzwerk ist mehr als ein Webserver.
Sie haben wahrscheinlich andere Dämonen ausgeführt, neben Dingen wie PostgreSQL, die Sie für die Entwicklung verwenden. Möglicherweise führen Sie SSH-Server, Filesharing-Server usw. aus. Wenn Sie an eine häusliche Umgebung gewöhnt sind, haben Sie möglicherweise den Bein-Tag s> übersprungen, um die Benutzerfreundlichkeit zu verbessern.
Die Am einfachsten ist es, den gesamten eingehenden Datenverkehr zu blockieren. Angenommen, Sie haben keine vorhandene UFW-Konfiguration, ist dies so einfach wie:
Wenn Sie nach Hause kommen und auf etwas zugreifen möchten, können Sie es entweder mit sudo ufw disable
deaktivieren oder die Standardeinstellung ändern und bestimmte Ports explizit öffnen. Wenn Sie gehen möchten Da ein SSH-Port verfügbar ist, habe ich einen Artikel über Härten von SSH-Konfigurationen geschrieben. Sofern Sie nicht in der NSA-Kantine sind, sollte dies die meisten Menschen von Ihrem System fernhalten.