10
votes

Clojure Swank Server ouvre un port public?

(cette question a été évitée, que je trouve étrange. Comment ai-je offensé?)

Ai-je raison de penser que l'exécution d'un serveur de swank ouvre généralement le port 4005 dans le monde, non liée aux connexions locales uniquement. P>

Donc, tout le monde piratage dans un café © n'autorise pas seulement les passants à exécuter du code arbitraire sur leur ordinateur, mais lui donne une belle interface pour le faire. P>

Il apparaît que lorsque j'exécute un serveur de swank avec 'MVN Clojure: Swank' ou 'Lein Swank', ou (Swank.swank / Start-Server "/ TMP / YO") P>

alors je reçois quelque chose comme (Merci Mike!): P>

Connection opened on local port  40368
#<ServerSocket ServerSocket[addr=localhost/127.0.0.1,port=0,localport=40368]>


0 commentaires

3 Réponses :


5
votes

question totalement valide.

Après avoir ouvert un serveur Slime, vous remarquerez: p>

eames:~:% lsof -i -P | grep 4005
java      41477  mjd   33u  IPv6 0x0b8956d0      0t0  TCP [::127.0.0.1]:4005 (LISTEN)


8 commentaires

Java 10561 John 14R IPv6 6521448 0T0 TCP *: 4005 (Écoute)


C'est un port exposé publiquement. Comment commencez-vous Swank?


Mike, désolé pour la réponse Super-Terse. Édition mon originale et d'une manière ou d'une autre n'a pas remarqué que ma copie et ma pâte étaient entrées dans les commentaires. Merci pour le diagnostic!


Voir la même chose: Java 8578 John 43u IPv6 597878 0T0 TCP *: 4005 (Écouter) Utiliser $ LEIN Version LEININGEN 1.3.1 ON Java 1.6.0_20 Java HotSpot (TM) Client VM et le port est ouvert, confirmée en vous connectant à celui-ci. d'Emacs sur une deuxième machine.


Quelle version de Swank utilisez-vous? Vous devriez avoir quelque chose comme : dev-dépendances [["Swank-Clojure" "1.2.1"]] dans votre projet.clj.


Ah, le mien dit: [Leiningen / Lein-Swank "1.1.0"]. va réessayer.


Générer un nouveau projet avec $ Lein Nouveau test donne (test de défense "1.0.0-Snapshot": Description "Fixme: écriture": Dépendances [[ORG.CLOJURE / CLOJURE "1.2.0"] [ORG.CLOJURE / CLOJURE-STOCT "1.2.0"]]) Et en effet, Lein swank d'ici semble ouvrir un port local. On dirait que la valeur par défaut a été modifiée récemment. Merci!


Si vous utilisez swank-clojure.el , vous pouvez ajouter : hôte \ "localhost \" à l'intérieur du format String qui contrôle comment le serveur est démarré dans swank-clojure-init (rechercher "(swank.swank / start-serveur ...) \ n \ n" ) pour l'avoir écouter sur localhost seulement.



1
votes

Il accepte uniquement une connexion, même si elle est exposée au monde, il cesse d'écouter une fois que vous vous connectez.


1 commentaires

Et ce n'est qu'un peu ennuyeux que cela ne commence pas à écouter lorsque vous déconnectez (bien que je suis beaucoup plus sûr de cette façon) et ce n'est vraiment pas beaucoup plus de travail pour le redémarrer plutôt que de devoir vous rappeler de l'arrêter quand je finis.



1
votes

Si vous utilisez le plug-in Clojure-Maven, la version 1.3.4 a récemment été publiée, qui démarrait maintenant le serveur de swank contre localhost pour empêcher ce problème.

Ce comportement peut être configuré dans votre fichier pom.xml avec : xxx

ou de la ligne de commande avec: xxx


2 commentaires

C'est merveilleux que vous ayez pris la peine de fermer cette échappatoire dans la journée de moi le remarquer. Bravo bien fait! J'aimerais pouvoir accepter deux réponses!


J'ai testé la libération d'instantané (clone GIT suivie de MVN Installation suivie d'une modification de projet POM.XML). Cela fonctionne un régal.