Как настроить сервер Jetty для запрета внешних подключений к серверу разработки веб-приложений?

#java #security #windows-7 #jetty

#java #Безопасность #windows-7 #jetty

Вопрос:

Я разрабатываю веб-приложение Java, используя Jetty в качестве сервера приложений на компьютере с Windows 7 и запускаю его на localhost:8080 .

В целях безопасности — чтобы убедиться, что мое приложение не видно другим — я хочу быть уверен, что оно привязано к 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:

Лучший способ решить эту проблему — установить брандмауэр в вашей операционной системе. Если вы не хотите, чтобы пользователи подключались извне к порту 8080, заблокируйте его в брандмауэре. Если вы запускаете службы на своем ноутбуке и используете его в ненадежной сети в любом случае, я надеюсь, что вы использовали бы брандмауэр для предотвращения доступа, который вы не собираетесь. Таким образом, вы можете блокировать доступ в одном месте, а не в конфигурации для каждого приложения, которое прослушивает порт.