为什么IntelliJ想要接受传入的网络连接?

时间:2017-04-17 04:01:29

标签: java security intellij-idea

➠IntelliJ中的哪些功能充当接受传入连接的服务器?

首次运行IntelliJ 2017.1.1时,我会看到一个对话框,询问是否允许传入网络连接。

  

您希望应用程序“java”接受传入的网络连接吗?

     

单击“拒绝”可能会限制应用程序的行为。可以在Security&amp ;;的防火墙窗格中更改此设置。隐私偏好。

     

[拒绝] [允许]

screenshot of dialog box asking permission to accept incoming network connections

单击Maven选项卡时,在New Project向导中全新安装IntelliJ 2017.2 Ultimate Edition时出现对话框示例。

screen shot of Apple macOS firewall message asking "Do you want the application java to accept incoming network connections" in the Maven tab of the New Project wizard

为什么IntelliJ会导致此提示?运行NetBeans时我没有遇到这样的事件。

否认或接受的影响究竟是什么?我担心让Java进程接受外部网络连接,因为这样做会带来严重的安全风险。

可能与:

有关

此问题有关消息来源的信息。来源是Apple macOS app-level firewall。您可以允许或阻止应用程序侦听传入的网络连接。允许这样做存在安全风险

IntelliJ要求添加到允许侦听传入消息的应用列表中。我的问题是,"为什么IntelliJ需要接受传入的网络连接?"。

screen shot of macOS > System Preferences > Security & Privacy > Firewall

2 个答案:

答案 0 :(得分:3)

可能它与下面的内容有关。

如果您点击http://localhost:63342/,您应该可以访问built-in server。默认情况下,它应仅在本地接口上侦听。

IntelliJ built-in server

6942-6992范围内的开放端口似乎与SocketLock.java

相关联
myServer = BuiltInServer.startNioOrOio(workerCount, 6942, 50, false, handler);

注意:端口6953, 6969, 6970将从该范围中排除。见BuiltInServer.java

private static final int[] FORBIDDEN_PORTS = {6953, 6969, 6970};

另一个开放端口链接到流程org.jetbrains.idea.maven.server.RemoteMavenServer

jps -l | grep jetbrains
24628 org.jetbrains.idea.maven.server.RemoteMavenServer

您可以找到netstat

的开放端口
on Linux: `netstat -ltupne`
on OSX (something like): nettop -np java

以及与jps相关的java进程(如上所示)

答案 1 :(得分:-8)

  

这样做会带来严重的安全风险。

不是,除非您不信任特定产品。如果你不相信产品,为什么要使用它?

IntelliJ需要偶尔检查一下它的许可证,连接到更新服务器,maven存储库,插件存储库,你可能想要连接的外部应用程序服务器,与数据库服务器同上。

Netbeans需要相同,你无疑只是忘了你在某个时候给了它许可,或者它使用了你在某个时候允许的外部JVM。