Могу ли я быть уверен, что мое веб-приложение на Java, работающее на localhost: 8080 невидимо от моих коллег по Starbucks? - PullRequest
4 голосов
/ 25 февраля 2011

Я разрабатываю приложение Spring на моей машине с Windows 7 и запускаю его на localhost: 8080.

Есть ли вероятность, что, если я сделаю это в общедоступном месте, например, в Starbucks, мое приложение станет видимым для других?

(я использую брандмауэр Windows и Microsoft Security Essentials)

Ответы [ 5 ]

6 голосов
/ 25 февраля 2011

Убедитесь, что он привязан к localhost:8080 (т. Е. 127.0.0.1), а не ко всем интерфейсам (что, вероятно, используется по умолчанию).Серверные программы обычно имеют возможность указать, какие IP-адреса следует связать.Например, в Apache вы можете указать IP-адрес для директивы Listen в дополнение к номеру порта.Если вы привязываете только к 127.0.0.1, порт не будет открыт для людей, сканирующих ваш внешний IP-адрес.

5 голосов
/ 25 февраля 2011

Короткий ответ: Нет.

Длинный ответ: кто-то может получить доступ к вашему приложению, например:

Если вы посещаете вредоносный веб-сайт (если кто-то в Starbucks отравляеткеш DNS или подделка ответов DNS, тогда вы можете посетить вредоносный веб-сайт по адресу www.google.com, не зная об этом), после чего злоумышленник может отправить вас в свой домен с DNS-сервером (который на самом деле может находиться на его ноутбуке) и ответить на него.тот же запрос с очень коротким TTL один раз с его IP, затем с 127.0.0.1, затем с его IP снова и т. д. Таким образом, когда вы отправляете на (http://www.example.com:8080)), он разрешается как IP-адрес атакующего, и вы получаете веб-сайт, который запускаетсяAJAX-запрос к тому же домену и тому же порту (поэтому в каждом браузере выполняется одна и та же политика происхождения), но благодаря короткому TTL у вас больше нет записи домена в вашем кэше, поэтому вы спрашиваете снова и на этот развы получаете ответ 127.0.0.1, который, кстати, является вашим собственным интерфейсом обратной связи, который вы считаете невидимым извне - и это на самом деле яневидимый снаружи, но отлично видимый из вашего браузера.Ваш браузер с радостью подключится к вашему приложению по адресу 127.0.0.1:8080 и перенаправит запрос злоумышленнику с помощью другого соединения AJAX или любого другого побочного канала.Вуаля, ваше приложение теперь подключено к миру!

Подобные вещи случаются в дикой природе, поэтому будьте осторожны.Иногда люди даже получают доступ к интерфейсам администратора в маршрутизаторах за NAT и межсетевыми экранами таким образом.Откровенно говоря, я довольно напуган всеми ответами, в которых говорится, что невозможно получить доступ к чему-либо, работающему на localhost.Будьте осторожны с тем, что вы делаете.

3 голосов
/ 25 февраля 2011

Есть ли вероятность, что, если я сделаю это в общедоступном месте, таком как Starbucks, моё приложение станет видимым для других?

Конечно! Люди могут смотреть через плечо.

2 голосов
/ 25 февраля 2011

что сказал Иеремия.используйте netstat -an, чтобы проверить, с какими адресами он связан.

и никогда не доверяйте брандмауэру Windows или любому другому программному обеспечению, к которому у вас нет источника.

1 голос
/ 25 февраля 2011

Если порт открыт, это может быть.Если вы запрограммируете его на то, что он будет принимать подключения только от локального хоста во время разработки, то даже если они его увидят, они не смогут подключиться к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...