PDA

Просмотр полной версии : URLLoader игнорирует закрытые порты


mikhailk
15.12.2017, 19:01
Что-то нет у меня идей, почему так.

1. Перекрыл в брандмауре Виндовз 10 исходящие TCP соединения на адреса с портом 9446.
2. Проверяю в браузере https://server.com:9446 - идет отказ
3. Запускаю проект, игрушка прекрасно лезет по адресу https://server.com:9446, при этом URLLoader диспатчит событие Event.COMPLETE. Событий IOErrorEvent.IO_ERROR, SecurityErrorEvent.SECURITY_ERROR не возникает.

URLLoader не через TCP лезет?

Собственно, мне надо воспроизвести ситуацию, когда игрушка запускается в какой-нибудь офисной сети, где параноидальный админ перекрыл порты и нужный мне в том числе.

caseyryan
15.12.2017, 22:44
Ну так закрой этот порт и по TCP и по UDP. В этом случае не должна лезть. Это же не флешка решает, можно ей зайти на порт или нет)

Tails
16.12.2017, 18:08
Почитайте про то как устанавливается Socket соединение. Там по факту идёт 2 tcp соединения, первое для передачи кроссдоменника второе - рабочее. И порты там могут быть разные.

caseyryan
16.12.2017, 21:49
Почитайте про то как устанавливается Socket соединение. Там по факту идёт 2 tcp соединения, первое для передачи кроссдоменника второе - рабочее. И порты там могут быть разные.

Ну так он же написал, что лезет на 9446. А кросдоменник запрашивается на 843 порту, по умолчанию

mikhailk
18.12.2017, 11:20
Я не про сокет. Я про обычный http запрос через URLLoader.
Ок, попробую закрыть UDP

Добавлено через 13 минут
Не, не помогло. Ничего не понимаю.
Остается, конечно, вариант запустить флешку не из под идеи, а в браузере. Может тогда блокировка порта сработает...

caseyryan
18.12.2017, 11:47
Остается, конечно, вариант запустить флешку не из под идеи, а в браузере. Может тогда блокировка порта сработает...
мм. ну как бээ. Ты же понимаешь, что логики в этом нет совсем? Если бы такое было вообще возможно, то любые вирусы ломились куда хотели, и никакие фаерволы были бы им не помеха :D
Не может никакая программа сама решать куда ей можно, а куда нельзя.
Даже если при запуске не из идеи блокировка сработает, то это всё равно полная лажа.

Если тест локальный, и сервер находится на том же компе или в той е локальной сети, то очень вероятно, что локальная политика безопасности не проверяет локальные айпишники, поэтому она и лезет на порт без проблем.
У тебя есть 2 варианта:
1) Проверить работу, когда флешка и сервер находятся в разных сетях
2) Настроить в фаерволе политику блокировки всех адресов, включая и локальные

mikhailk
18.12.2017, 12:04
1)Проверить работу, когда флешка и сервер находятся в разных сетях

Они точно находятся в разных сетях.


2) Настроить в фаерволе политику блокировки всех адресов, включая и локальные

На самом деле, адрес заблокировать я могу и сам внутри игрушки. Достаточно ввести неправильный адрес сервера и ошибка вылезет. Но мне нужно воспроизвести ситуацию, когда заблокирован порт.

Фактически, речь идет о следующем. Игрушка нештатно работает у некоторых пользователей, доступа к которым у меня нет и посмотреть напрямую, почему это происходит, возможности нет. Есть гипотеза, что эти пользователи запускают игрушку в офисных сетях, где перекрыты какие-то порты (игрушка лазит на разные сервера с разными портами). Мне нужно воспроизвести у себя ситуацию, когда игрушка уткнулась в такой заблокированный порт.

undefined
18.12.2017, 12:41
Может флэшка из кеша берет респонсы

mikhailk
18.12.2017, 13:03
Может флэшка из кеша берет респонсы

Там каждый запрос с уникальным ключом.

undefined
18.12.2017, 13:27
ключ меняется от раза к разу?

mikhailk
18.12.2017, 13:30
да, естественно

undefined
18.12.2017, 13:42
а если запросить google.com через этот порт?

caseyryan
18.12.2017, 13:45
Что-то уж совсем неправдоподно звучит.
А что на сервере на этом порту висит?
Event.COMPLETE это еще не показатель успешности запроса в плане отдачи флешке того, что она хочет, это лишь говорит о том, что запрос завершился без ошибки. Может туда ей access denied какой-нибудь приходит. Попробуй тогда с этого порта отдать флешке какую-нибудь строку. Сможет она ее прочитать?
Если прочитает, значит дело в дырявом фаерволле, 100%.
На самом деле, адрес заблокировать я могу и сам внутри игрушки. Достаточно ввести неправильный адрес сервера и ошибка вылезет. Но мне нужно воспроизвести ситуацию, когда заблокирован порт.
Тут либо ты меня не понял, либо я тебя. Не можешь ты ничего заблокировать из своей игрушки. Я говорю о блокировке айпишников и портов на сервере, чтобы он не пускал флешку, даже если она пытается заломиться по правильному адресу

mikhailk
18.12.2017, 15:08
Если я вношу в список правил брандмауэра Виндовз ай-пи сервера, то соединение не устанавливается и я устойчиво получаю ошибку IOErrorEvent.IO_ERROR. Собственно, я ее же получаю, если допускаю ошибку в доменном имени сервера.

Выключаю правило блокировки по ip, оставляю только блокировку по порту - соединение устанавливается, причем сервер присылает тот объект данных, который от него ожидается.

caseyryan
18.12.2017, 16:26
Покажи как брандмауэр настраиваешь. Правила и для входящих и для исходящих сделал? По TCP/UDP? Сегодня проверял на Win Server 2008 r2. Полностью блокирует доступ по порту

mikhailk
18.12.2017, 16:55
В общем, у меня получилось так - если игрушка запущена в браузере, то доступ через брандмауэр блокируется и возникает IOErrorEvent.IO_ERROR. Если запускаю под идеей, то ничего не блокируется.

undefined
18.12.2017, 17:20
при первом запуске fd брандмаэр возбуждается и просит разрешить чтоб fd мог в сеть ходить.Видать после этого запреты файервола на fd не распространяются.В win7+fd так по крайней мере.

caseyryan
19.12.2017, 07:23
при первом запуске fd брандмаэр возбуждается и просит разрешить чтоб fd мог в сеть ходить.Видать после этого запреты файервола на fd не распространяются.В win7+fd так по крайней мере.

Логично, если и сервер и идея находятся на одном физическом компе. Но он же написал, что у него сервер и рабочий комп находятся в разных сетях.

mikhailk, а на сколько сети разные? Сервер стоит вообще где-то в другом городе/районе? Доступ к нему только через интернет? Никаких lan, vlan общих нет?
Если так, то тут остается только хреновый фаервол, попробуй поставить другой.

undefined
19.12.2017, 13:03
Логично, если и сервер и идея находятся на одном физическом компе. Но он же написал, что у него сервер и рабочий комп находятся в разных сетях.

Если все на одном компе,то и в сеть лезть не надо. Что у меня одного при запуске нового софта брэнмаэр создает новое правило?

mikhailk
19.12.2017, 18:19
а на сколько сети разные? Сервер стоит вообще где-то в другом городе/районе? Доступ к нему только через интернет? Никаких lan, vlan общих нет?
Если так, то тут остается только хреновый фаервол, попробуй поставить другой.

Сервер реально в Инете живет. То ли на хецнере, то ли еще на каком хостинге. В общем, мне хватило того, что под браузером все отработало корректно, дальше не заморачивался.

Вайервол - штатный от 10-й виндовз. Ничего специфического.

caseyryan
19.12.2017, 20:16
Если все на одном компе,то и в сеть лезть не надо. Что у меня одного при запуске нового софта брэнмаэр создает новое правило?
Да при чёт тут твой фаервол? Ты вообще понял о чём речь идёт?
Сервер реально в Инете живет. То ли на хецнере, то ли еще на каком хостинге. В общем, мне хватило того, что под браузером все отработало корректно, дальше не заморачивался.
Значит это очень жёсткая дыра в безопастности. По сути, любой желающий может вломиться на этот сервер в обход всех блокировок, и вшить туда любой свой бэкдор. Это повод серьёзно задуматься админам сервера

undefined
19.12.2017, 20:41
Да при чёт тут твой фаервол? Ты вообще понял о чём речь идёт?
Перекрыл в брандмауре Виндовз 10 исходящие TCP соединения на адреса с портом 9446.
Речь о том,как с помощью вайервола закрыть порт и почему этого не происходит.

caseyryan
20.12.2017, 05:47
Речь о том,как с помощью вайервола закрыть порт и почему этого не происходит.
Значит похоже, что я наоборот я не правильно понял тему :D
Я думал, что файрвол на сервере допускает подключения к своим портам разных левых программ) Сорян
Да, значит тут наверняка твой вариант правильный.