如何配置Jetty服务器以禁止Web应用程序开发服务器外部的连接?

时间:2011-05-07 14:56:42

标签: java security windows-7 jetty

我正在使用 Jetty 作为 Windows 7 计算机上的应用程序服务器并在localhost:8080上运行它来开发Java Web应用程序。

出于安全目的 - 确保我的应用程序对其他人不可见 - 我想确保它绑定到localhost:8080(即127.0.0.1),而不是所有接口(我都是米告诉可能是默认的)。

我已经读过,如果你只绑定到127.0.0.1,那么扫描你的外部IP地址和的人不会打开端口,所以除了我之外我的应用基本上是不可见的开发(例如,在咖啡店的笔记本电脑上工作)

我不知道如何在 Jetty 中执行此操作。

我听说服务器程序通常可以选择绑定哪些IP地址。

所以我尝试将以下jetty-web.xml添加到我的网络应用的WEB-INF目录中,但我无法判断它是否有效。在添加此内容之前和之后,netstat -an表示LISTENING上的8080

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">

<Configure class="org.mortbay.jetty.servlet.WebApplicationContext">

    <!-- Uncomment to restrict context by real host -->
    <Set name="Hosts">
      <Array type="java.lang.String">
        <Item>127.0.0.1</Item>
      </Array>
    </Set>  


    <!-- uncomment to map context by virtual host.
    <Set name="virtualHosts">
      <Array type="java.lang.String">
        <Item></Item>
        <Item>127.0.0.1</Item>
        <Item>localhost</Item>
        <Item>www.acme.com</Item>
      </Array>
    </Set>
    -->

</Configure>

1 个答案:

答案 0 :(得分:0)

解决此问题的更好方法是使用操作系统中的防火墙。如果您不希望人们从外部连接到端口8080,请在防火墙中阻止它。如果您在笔记本电脑上运行服务并在不受信任的网络中使用它,我希望您使用防火墙来阻止您不打算访问。这样,您可以在一个位置阻止访问,而不是在侦听端口的每个应用程序的配置中阻止访问。