【问题标题】:Do I need to request Admin Permissions for Network Access?我需要申请网络访问的管理员权限吗?
【发布时间】:2013-06-17 23:13:55
【问题描述】:

我有一个包装在 launch4j exe 包装器中的 java 应用程序。

它在一个用户可配置的高编号端口(默认为 8080)上提供 Web 内容。

它使用另一个网络连接进行数据访问。这利用了由 UDP 111 上的初始请求协商的未知端口上的 TCP。

我想知道是否需要配置此应用程序,使其要求以管理员权限运行,或者是否应以启动它的用户的权限运行。

【问题讨论】:

  • 不要以管理员权限运行它。理想情况下,它应该拥有自己的用户,并且仅限于它需要能够执行的操作。
  • @BevynQ 在这个特定的实例中,它没有作为服务运行。最终用户将通过单击桌面图标来启动它,并在完成后退出它。我的选项是常规最终用户权限或要求以管理员身份运行。如果我的最终用户需要特殊的权限策略来运行访问网络的软件,我很乐意将其纳入系统要求,但我对 Windows 策略的了解不足以说明究竟需要什么。
  • 用户权限对于大多数应用程序来说应该足够了。还以用户可以正常运行的方式编写应用程序可以节省很多支持的麻烦。

标签: java windows executable uac


【解决方案1】:

在 Windows 上,一般来说,您无需成为管理员即可打开侦听套接字。

  • Windows 防火墙可能会阻止传入连接
  • Java 安全本身可能会限制打开低于 1024 的端口(如 .NET Windows Communication Foundation 所做的那样)

但您无需成为管理员即可打开侦听套接字。

而且,正如@BevynQ 所说,理想情况下,您的应用程序不会是管理员。您的 TCP 服务几乎肯定会存在缓冲区溢出和安全漏洞。您不希望网络上的任何人能够强迫您提升的应用程序做坏事。

【讨论】:

  • 自从我问这个问题以来已经很久了,但我再次看到这个并想弹出并说这是正确的。一旦我进入并应用了声明我不需要管理员权限的策略,提示就消失了,应用程序继续完美运行。
猜你喜欢
  • 2014-06-26
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
  • 1970-01-01
相关资源
最近更新 更多