【问题标题】:Why does IntelliJ want to accept incoming network connections?IntelliJ 为什么要接受传入的网络连接?
【发布时间】:2017-09-12 16:27:28
【问题描述】:

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

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

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

单击拒绝可能会限制应用程序的行为。可以在安全和隐私首选项的防火墙窗格中更改此设置。

[拒绝] [允许]

在全新安装 IntelliJ 2017.2 Ultimate 版本时,在“新建项目”向导中单击 Maven 选项卡时出现的对话框示例。

为什么 IntelliJ 会导致此提示?我在运行 NetBeans 时没有收到此类事件。

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

可能与:


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

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

【问题讨论】:

  • 另见this question
  • @BasilBourque 是的,但问题是为什么 IntelliJ 试图接受传入的连接?
  • @SteveKuo 我上面的评论是对其他人现在已删除的评论的回应。
  • 解决方法是什么? JetBrains 这样做是为了在应用程序中构建后门以进行远程访问吗?

标签: java security intellij-idea


【解决方案1】:

可能它链接到下面。

如果您点击http://localhost:63342/,您应该能够访问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进程(如上所示)

【讨论】:

  • 你没有回答。至少不是直接的,传入的网络连接是什么,为什么要接受它。
  • @AbhijitSarkar 对话框中的消息显示“您希望应用程序“java”接受传入的网络连接吗?”。我会认为这是一个应用程序正在打开一个端口,并且防火墙会询问您是否要允许连接到该端口。
  • 你没有抓住重点。为什么?如果您在手机上安装了一个应用程序并要求访问您的联系人,问题不在于弹出消息上写了什么,而是为什么它需要这样的访问权限?
  • @AbhijitSarkar 你的例子就是这样。 IntelliJ 想监听一个端口。防火墙询问用户是否(在网络级别)允许传入连接。显示的弹出对话框不是来自 IntelliJ,而是来自 MacOS 的内置防火墙。
【解决方案2】:

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

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

IntelliJ 需要不时检查其许可证,连接到更新服务器、maven 存储库、插件存储库、您可能想要连接的外部应用程序服务器,以及数据库服务器。

Netbeans 也需要同样的东西,毫无疑问,您只是忘记了在某个时候授予了它权限,或者它使用了您在某个时候授予了权限的外部 JVM。

【讨论】:

  • IntelliJ 不需要接受传入连接来执行您在答案中引用的所有操作。作为开发人员,您有时可能会连接到公共不安全的 wifi 网络(星巴克、机场等),并且不希望您的机器上有未知的开放端口。
  • 这个答案是愚蠢和不正确的。愚蠢的:忽略向来自机器外部的传入连接打开端口的安全风险要么是无知的,要么是愚蠢的。不正确:正如 Lokni 评论的那样,您提到的所有功能都需要传出连接,而不是传入连接。最终这个答案甚至没有解决这个问题。当有人试图提供帮助时,我不愿意投反对票,但我必须在这里。
猜你喜欢
  • 2015-04-15
  • 1970-01-01
  • 2019-06-29
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 2018-07-19
  • 2013-09-21
  • 1970-01-01
相关资源
最近更新 更多