What I'm uneasy about is the ability of any other program to fetch what is available at this port.
Per cominciare, se il tuo server si collega a localhost (che è 127.0.0.1
per IPV4 e / o ::1
per IPV6) allora solo i client in esecuzione su localhost dovrebbero essere in grado di accedervi. Se vuoi limitare le connessioni a programmi locali , assicurati che il tuo server si leghi a uno di quegli indirizzi di loopback e sicuramente non 0.0.0.0
o ::
( che denotano tutte le interfacce) .
Se qualcuno ha un software di accesso agli accessi non autorizzato che può connettersi al dispositivo loopback localhost , potresti avere un problema molto più grande . Immagino che questo non sia un problema, intendendo a meno che tu non condivida il tuo computer con altri, sei sicuro di legare solo a 127.0.0.1
e / o ::1
e farlo con esso .
Potresti condividere il tuo computer con altri, ovvero eseguire un servizio di shell , il che significa che stai dando accesso al tuo sistema . In questo caso, la capacità di uno dei tuoi utenti (si spera fidati) di connettersi ai servizi legati al loopback dovrebbe essere una delle tue preoccupazioni. Quando lasci altre persone dietro il tuo firewall e nella tua area utenti , dai loro la possibilità di sondare l'intera rete! Il router, la stampante e tutti i telefoni collegati alla rete possono anche eseguire software e questi dispositivi possono essere molto più difficili da proteggere rispetto al server.
Dovresti prendere in considerazione la sandboxing di tali utenti che usano la virtualizzazione come KVM, Xen, ecc. dando loro il loro ambiente virtuale (inclusa un'interfaccia di rete virtuale ) per giocare e dando così la possibilità di installare un firewall su tale interfaccia di rete virtuale .
What are the best practices for choosing a port on localhost (if that's already a practice not so bad) and, if that's possible, securing it?
Anche in questo caso, le connessioni in entrata da un'interfaccia non-loopback dovrebbero non essere in grado di connettersi ai socket in ascolto su un'interfaccia loopback . Se il tuo sistema operativo consente una tale connessione, è grossolanamente mal configurato, oppure è Windows XP, service pack 1a o inferiore (che è di per sé un problema separato).
La tua preoccupazione principale dovrebbe essere quella di impedire agli utenti non fidati di eseguire codice direttamente nel tuo territorio utente, quindi se condividi il tuo computer con altre persone, come amministratore, dovresti sandbox quelle altre persone e mantenere un approccio a grana fine a quali cose esterne possono vedere. Supponendo che siano in modalità sandbox, possono solo comunicare con l'host tramite un'interfaccia di rete virtuale, quindi, ancora una volta, non possono connettersi a 127.0.0.1
o ::1
-bound servizi sull'host, ma potrebbero essere in grado per scansionare la tua rete, ancora ...