(Этот вопрос был опущен, что я нахожу странным. Как я обидел?)
Правильно ли я думаю, что запуск swank-сервера обычно открывает порт 4005 миру, не привязанный к соединениям только с локальным хостом?
Таким образом, любой, кто взломал в кафе, не только позволяет прохожим выполнять произвольный код на своем компьютере, но и дает им приятный интерфейс, чтобы сделать это с помощью.
Похоже, что когда я запускаю swank-сервер с "mvn clojure: swank" или "lein swank" или (swank.swank/start-server "/tmp/yo)
тогда я получаю что-то вроде (спасибо Майку!):
$lsof -i -P
java 11693 john 13r IPv6 6701891 0t0 TCP *:34983 (LISTEN)
и действительно, я могу подключиться к emacs, работающему на другой машине в той же сети.
(swank.swank/start-server "/tmp/yo")
Если я запускаю сервер вручную, он выдает следующий вывод
Connection opened on local port 34983
#<ServerSocket ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=34983]>
В то время как:
(swank.swank/start-server "/tmp/yo" :host "localhost")
дает:
Connection opened on local port 40368
#<ServerSocket ServerSocket[addr=localhost/127.0.0.1,port=0,localport=40368]>
Это похоже на то, что я ожидал.
Есть ли веская причина для этого?
Любые идеи о том, как более традиционные способы его запуска могут быть убеждены в том, что они принимают только соединения из локальных процессов?