probabilmente non è un attacco MITM praticabile qui. Supponendo Ubuntu e Django, ci sono due grandi fattori che cospirano contro un aggressore:
-
Gli host predefiniti di Ubuntu e la configurazione DNS risolveranno localhost
utilizzando un'impostazione hardcoded. Non eseguirà nemmeno una query DNS. Puoi cambiare questo ... Ma non farlo invece :)
-
Django si lega a 127.0.0.1:8000
per impostazione predefinita. Per mitM completamente te, l'attaccante dovrebbe intercettare il traffico servito da Django ma non ha accesso.
Detto questo, la sicurezza web è complicata. Potrebbero esserci cose che stai facendo che un utente malintenzionato potrebbe sfruttare per avere un qualche effetto su di te.
Le risorse esterne devono essere protette
Molti di noi incorporano terze parti , File ospitati dalla CDN. Jquery, Bootstrap, ecc. Se sono http: //
o //
(ricorda che il server di sviluppo non utilizza TLS), ciò potrebbe dare a un utente malintenzionato l'opportunità di MITM quei file e inserisci script in tempo reale nelle tue pagine.
Per il bene dello sviluppo locale lontano da una connessione Internet, potrebbe essere meglio su tutti i conti ospitare tutto da solo.
Tecniche di click-jack e iframe
Solo perché non possono accedere al tuo server locale, non significa che non possano dire al tuo browser di accedervi. La sicurezza cross origin (probabilmente) impedirà loro di eseguire operazioni direttamente con esso, ma potrebbero inserirla in un iframe. Questa è una sorta di clickjack inverso.
Per l'utente sembrerebbe semplicemente il tuo sito web. Potrebbero persino acquisire tutti gli URL alla loro estremità e inserirli nel frame. Se fosse un sito web pubblico, potrebbero anche capire cosa stavi facendo clic.
Ma ovviamente stai già utilizzando django-secure
, vero? Lo consiglierei. Un'impostazione e inizierai a inviare le intestazioni X-Frame-Options: DENY
con ogni richiesta Django. In alternativa c'è un'opzione incorporata in Django che fa lo stesso. Raccomando django-secure
perché fa molto di più.
La tua sicurezza su una rete ostile è più di un server web
Probabilmente hai altri demoni in esecuzione, oltre a cose come PostgreSQL che stai usando per lo sviluppo. Potresti eseguire server SSH, server di condivisione di file, ecc. E se sei abituato a un ambiente domestico, potresti aver saltato la giornata con una sicurezza più debole per comodità.
la cosa più semplice da fare è bloccare tutto il traffico in entrata. Supponendo che tu non abbia una configurazione UFW esistente, è semplice come:
sudo ufw enableudo ufw default deny incomingsudo ufw default allow outgoing
Ciò manterrà i riavvii. Se torni a casa e vuoi accedere a qualcosa, puoi disattivarlo con sudo ufw disable
o modificare l'impostazione predefinita e aprire esplicitamente determinate porte.
Se hai intenzione di andartene una porta SSH esposta, ho scritto un articolo su rafforzamento delle configurazioni SSH. A meno che tu non sia nella mensa della NSA, questo dovrebbe tenere la maggior parte delle persone fuori dal tuo sistema.