(这个问题被否决了,我觉得很奇怪。我怎么得罪了?)
我是否认为运行 swank 服务器通常会向世界打开端口 4005,而不是绑定到仅限本地主机的连接?
因此,任何在咖啡馆进行黑客攻击的人不仅允许路人在他们的计算机上执行任意代码,而且还为他们提供了一个很好的界面来执行此操作。
看来,当我使用 'mvn clojure:swank' 或 'lein swank' 或 (swank.swank/start-server "/tmp/yo") 运行 swank 服务器时
然后我得到类似的东西(感谢迈克!):
$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]>
这似乎更像我所期待的。
这样做有什么好的理由吗?
关于如何以更传统的方式启动它的任何想法可以被说服只接受来自本地进程的连接?