(Esta pregunta ha sido rechazada, lo cual me parece extraño. ¿Cómo he ofendido?)clojure swank server abre el puerto público?
¿Tengo razón al pensar que ejecutar un servidor swank generalmente abre el puerto 4005 al mundo, no vinculado a las conexiones solo localhost?
De modo que cualquier intrusión en un café no solo permite a los transeúntes ejecutar código arbitrario en su computadora, sino que también les proporciona una interfaz agradable para hacerlo.
Parece que cuando corro un servidor ostentoso, ya sea con 'clojure mvn: Swank', o 'Swank Lein', o (swank.swank/start-server "/ tmp/yo")
entonces obtener algo así como (gracias Mike!):
$lsof -i -P
java 11693 john 13r IPv6 6701891 0t0 TCP *:34983 (LISTEN)
y de hecho me puedo conectar desde un emacs que se ejecutan en otro equipo de la misma red.
(swank.swank/start-server "/tmp/yo")
Si comienzo el servidor con la mano, se produce la siguiente salida
Connection opened on local port 34983
#<ServerSocket ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=34983]>
Considerando lo siguiente:
(swank.swank/start-server "/tmp/yo" :host "localhost")
produce:
Connection opened on local port 40368
#<ServerSocket ServerSocket[addr=localhost/127.0.0.1,port=0,localport=40368]>
que parece más como si Estaba esperando.
¿Hay alguna buena razón para hacer esto?
¿Alguna idea de cómo podrían convencerse las formas más convencionales de iniciarla para aceptar únicamente conexiones de procesos locales?
java 10561 John 14r IPv6 TCP 6.521.448 0T0 *: 4005 (ESCUCHAR) –
Ese es un puerto expuesto públicamente. ¿Cómo estás empezando swank? –
mike, perdón por la respuesta supersecunda. Estaba editando mi original y de alguna manera no me di cuenta de que mi copia y pega había ido a los comentarios. Gracias por el diagnóstico! –