1
Автоматическая регистрация пользователей из интернет
Автор kostin_ds, 06 июн 2023 23:51
Сообщений в теме: 10
#1
Отправлено 06 Июнь 2023 - 23:51
Доброго времени
Ситуация такая.
система установлена на сервере внутри предприятия, в интернет она не смотрит.
В интернет смотрит реверспрокси с nginx.
Просто зайти и авторизоватся можно. а вот по скриптам которые приведены на этом форуме из интернета получаем просто белую страницу.
хотя из локальной сети по скрипту авторизуется свободно.
Подскажите куда копать?
И еще вопрос попутно.
Адаптация для работы с сотовых телефонов есть?
Заранее благодарен.
если важно, лицензия куплена, ждем поставку
Ситуация такая.
система установлена на сервере внутри предприятия, в интернет она не смотрит.
В интернет смотрит реверспрокси с nginx.
Просто зайти и авторизоватся можно. а вот по скриптам которые приведены на этом форуме из интернета получаем просто белую страницу.
хотя из локальной сети по скрипту авторизуется свободно.
Подскажите куда копать?
И еще вопрос попутно.
Адаптация для работы с сотовых телефонов есть?
Заранее благодарен.
если важно, лицензия куплена, ждем поставку
#2
Отправлено 07 Июнь 2023 - 00:11
kostin_ds (06 Июнь 2023 - 23:51) писал:
Ситуация такая.
система установлена на сервере внутри предприятия, в интернет она не смотрит.
В интернет смотрит реверспрокси с nginx.
Просто зайти и авторизоватся можно. а вот по скриптам которые приведены на этом форуме из интернета получаем просто белую страницу.
хотя из локальной сети по скрипту авторизуется свободно.
Подскажите куда копать?
система установлена на сервере внутри предприятия, в интернет она не смотрит.
В интернет смотрит реверспрокси с nginx.
Просто зайти и авторизоватся можно. а вот по скриптам которые приведены на этом форуме из интернета получаем просто белую страницу.
хотя из локальной сети по скрипту авторизуется свободно.
Подскажите куда копать?
Здравствуйте, Денис!
В скрипт автоматической авторизации параметры запроса передается в формате GET-запроса, а все остальные запросы в INDIGO идут как POST-запросы. Может быть у Вас есть какая-та проблема с настройкой реверс прокси, и не учтено, что нужно передавать и GET-запросы. Если из локальной сети без реверс прокси эти запросы работают, а извне через реверс прокси не работают, то очевидно, что это не проблема с INDIGO, а проблема с настройкой NGINX, т.к. если бы это была проблема на стороне скрипта авторизации, то оно не работало бы и из локальной сети. INDIGO все равно это прокси или нет, она ничего про это не знает, открывает локальный сетевой порт и ждет входящие подключения, а откуда они приходят INDIGO ничего про это не знает и все обрабатывает одинаково. Скачайте в папку web этот сприпт https://disk.yandex..../jm1Zngbnew4uZg
<? echo 'login:'.$_GET['login'].'<br/>'; echo 'pass:'.$_GET['pass'] ?>
И выполните в браузере запрос по внутреннему адресу и по внешнему:
http://адрес/test.php?login=ivan&pass=12345
Скрипт выведет что получает и отобразит это на экране.
kostin_ds (06 Июнь 2023 - 23:51) писал:
И еще вопрос попутно.
Адаптация для работы с сотовых телефонов есть?
Адаптация для работы с сотовых телефонов есть?
- Да, на телефонах советуем работать в горизонтальном развороте (скрин).
#3
Отправлено 07 Июнь 2023 - 00:17
Беда в том, что и внутри и снаружи все идете через реверс... так как копия доменной зоны поднята и на корп ДНС, Нужно это для того что бы к веб сервисам люди обращались по единому адресу, как и изнутри так и снаружи.
единственное отличие что изнутри через внутренний интерфейс а снаружи ессно через внешний,
а вот за скрипт спасибо.. попробую посмотреть со всех сторон
единственное отличие что изнутри через внутренний интерфейс а снаружи ессно через внешний,
а вот за скрипт спасибо.. попробую посмотреть со всех сторон
#4
Отправлено 07 Июнь 2023 - 09:27
Интересное наблюдение
Если заходим из локальной сети то в логах nginx так:
а вот при заходе извне
причем сетевой интерфейс у nginx один, просто из интернета на него проброшен порт 443 и все. там несколько сервисов крутятся и все нормально.
переменные логин и пароль передаются нормально, такое чувство что не выполняется js
Если заходим из локальной сети то в логах nginx так:
192.168.203.206 - - [07/Jun/2023:08:28:20 +0300] "GET /login.php?login=ivan&pass=12345HTTP/2.0" 200 611 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 192.168.203.206 - - [07/Jun/2023:08:28:20 +0300] "GET /js/libs.rc6.js HTTP/2.0" 301 353 "https://server.ru/login.php?login=ivan&pass=12345" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 192.168.203.206 - - [07/Jun/2023:08:28:20 +0300] "GET /js/libs4.js HTTP/2.0" 200 136484 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 192.168.203.206 - - [07/Jun/2023:08:28:20 +0300] "POST /modules/authorization.php HTTP/2.0" 200 233 "https://server.ru/login.php?login=ivan&pass=12345" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 192.168.203.206 - - [07/Jun/2023:08:28:20 +0300] "GET / HTTP/2.0" 200 2985 "https://server.ru/login.php?login=ivan&pass=12345" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 192.168.203.206 - - [07/Jun/2023:08:28:20 +0300] "GET /images/logo.png HTTP/2.0" 200 12184 "https://server.ru/" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 192.168.203.206 - - [07/Jun/2023:08:28:20 +0300] "GET /css/style11.css HTTP/2.0" 200 46423 "https://server.ru/" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 192.168.203.206 - - [07/Jun/2023:08:28:20 +0300] "GET /js/main12.js HTTP/2.0" 200 19711 "https://server.ru/" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 192.168.203.206 - - [07/Jun/2023:08:28:20 +0300] "GET /modules/testing/tests.php?_=1686115700900 HTTP/2.0" 200 700 "https://server.ru/" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
а вот при заходе извне
176.59.34.216 - - [07/Jun/2023:08:26:32 +0300] "GET /login.php?login=ivan&pass=12345HTTP/2.0" 200 611 "-" "Mozilla/5.0 (Android 13; Mobile; rv:109.0) Gecko/113.0 Firefox/113.0" 176.59.34.216 - - [07/Jun/2023:08:26:32 +0300] "GET /js/libs.rc6.js HTTP/2.0" 301 353 "https://server.ru/login.php?login=ivan&pass=12345" "Mozilla/5.0 (Android 13; Mobile; rv:109.0) Gecko/113.0 Firefox/113.0"и далее не идет
причем сетевой интерфейс у nginx один, просто из интернета на него проброшен порт 443 и все. там несколько сервисов крутятся и все нормально.
переменные логин и пароль передаются нормально, такое чувство что не выполняется js
#6
Отправлено 07 Июнь 2023 - 11:21
Если из локальной сети через NGINX все работает, а при доступе извне через тот же NGINX не работает, то проблема с настройками NGINX или настройками безопасности (фаерволов/антивирусов/браузеров), т.к. INDGIO нет никакой разницы откуда идут запросы, со стороны INDIGO все обрабатывается одинаково. Судя по логу NGINX останавливается 301 редиректе и больше ничего не грузит. Если через IE работает, а через Chorme нет, то может быть это какие-то настройки безопасности (фаерволов/антивирусов/браузеров). В скрипте авторизации прописан JS файл старой версии программы /js/libs.rc6.js. Его уже нет в папке web. Чтобы сохранять совместимость новых версий программы со старыми версиями скриптов без необходимости их менять в новых версиях прописана команда 301-го редиректа со старой версии на новую версию скрипта. Это прописано внутри файла web\js\access.iac (.htaccess):
- Тут написано, если кто-то будет обращаться на старую версию файла /js/libs.rc6.js или /js/libs3.js, то адресовать на новую версию файла /js/libs4.js. Почему у Вас NGINX/браузеры при доступе из локалки обрабатывает этот редирект, а при доступе извне отказывается обрабатывать этот редирект, не ясно. Может быть это как-то связано с настройками безопасности. 301-ый редирект это совершенно нормальная практика, и это повсеместно всеми используется. Не понятно почему у Вас при доступе по внешним адресам 301-редирект запрещен.
Вы можете в скрипт авторизации внести изменение, чтобы обращаться сразу напрямую к новой версии файла. Для этого нужно в скрипте эту строчку кода:
Заменить на эту строчку кода:
Попробуйте это сделать и по результатам сообщите, что получилось.
Если в будущем в следующих обновлениях INDIGO версия этого файла будет повышена и его имя будет изменено, то нужно будет в этот скрипт внести изменение вручную. Согласно текущей истории такие изменения бывают редко, раз в несколько лет, поэтому каждый раз при обновлении программы это менять не придется. Либо нужно разобраться почему у Вас не обрабатывается 301-редирект на внешних адресах.
<IfModule alias_module> Redirect 301 "/js/libs.rc6.js" "/js/libs4.js" Redirect 301 "/js/libs3.js" "/js/libs4.js" </IfModule>
- Тут написано, если кто-то будет обращаться на старую версию файла /js/libs.rc6.js или /js/libs3.js, то адресовать на новую версию файла /js/libs4.js. Почему у Вас NGINX/браузеры при доступе из локалки обрабатывает этот редирект, а при доступе извне отказывается обрабатывать этот редирект, не ясно. Может быть это как-то связано с настройками безопасности. 301-ый редирект это совершенно нормальная практика, и это повсеместно всеми используется. Не понятно почему у Вас при доступе по внешним адресам 301-редирект запрещен.
Вы можете в скрипт авторизации внести изменение, чтобы обращаться сразу напрямую к новой версии файла. Для этого нужно в скрипте эту строчку кода:
<script type="text/javascript" src="js/libs.rc6.js"></script>
Заменить на эту строчку кода:
<script type="text/javascript" src="js/libs4.js"></script>
Попробуйте это сделать и по результатам сообщите, что получилось.
Если в будущем в следующих обновлениях INDIGO версия этого файла будет повышена и его имя будет изменено, то нужно будет в этот скрипт внести изменение вручную. Согласно текущей истории такие изменения бывают редко, раз в несколько лет, поэтому каждый раз при обновлении программы это менять не придется. Либо нужно разобраться почему у Вас не обрабатывается 301-редирект на внешних адресах.
#7
Отправлено 07 Июнь 2023 - 12:06
Только что сам до этого дошел
именно найдя этот кусок кода, оно получается что редиректит она по HTTP протоколу, когда запрос идет по HTTPS и браузеры рубят такое поскольку смешаный контент.
именно поэтому в IE 11 это работает, он не обращает внимание на смешаный контент.
то есть рубило на уровне браузера, и в консоли это видно, особенно в хроме.
так что у многих кто будет лепить HTTPS может возникнуть такая проблема.
именно найдя этот кусок кода, оно получается что редиректит она по HTTP протоколу, когда запрос идет по HTTPS и браузеры рубят такое поскольку смешаный контент.
именно поэтому в IE 11 это работает, он не обращает внимание на смешаный контент.
то есть рубило на уровне браузера, и в консоли это видно, особенно в хроме.
так что у многих кто будет лепить HTTPS может возникнуть такая проблема.
#8
Отправлено 07 Июнь 2023 - 12:27
В скрипте прописан относительный путь к файлу, а не абсолютный, поэтому по HTTPS это работает. Проблема опять таки упирается не в INDIGO, а в конкретные настройки Вашего прокси. Получается, что у Вас SSL сертификаты загружены не в INDIGO, а в NGINX? Ну тогда INDIGO не знает, что запросы идут по HTTPS, т.к. получает их по HTTP от NGINX, после NGINX получает ответ, шифрует трафик и отправляет в браузер. Можно включить полное проксирование с подключением сертификатов в самой INDIGO:
Но в этом случае NGINX не должен обслуживать другие https-сайты, т.к. в этом случае порт 443 может быть занят только для проксирования запросов к INDIGO. Тогда NGINX будет стримить уже зашифрованный трафик INDIGO напрямую. Если у Вас на NGINX висят ещё какие-то сайты, то лучше оставить все как есть на чем Вы сейчас остановились, иначе может нарушиться работа других сайтов.
stream { server { listen 443; proxy_pass ip_address_сервера_indigo:443 } }
Но в этом случае NGINX не должен обслуживать другие https-сайты, т.к. в этом случае порт 443 может быть занят только для проксирования запросов к INDIGO. Тогда NGINX будет стримить уже зашифрованный трафик INDIGO напрямую. Если у Вас на NGINX висят ещё какие-то сайты, то лучше оставить все как есть на чем Вы сейчас остановились, иначе может нарушиться работа других сайтов.
#9
Отправлено 07 Июнь 2023 - 12:34
да включено то и в индиго был HTTPS. но вот только все равно почему то именно этот редирект не работал как надо.то есть стандартная практика https через nginx на https целевого сервера.
а в консоли хорошо видно что вызывается
и попутно немного оффтоп
я могу кнопку закончить тестирование каким то образом поместить в поле сообщение? .. а то у меня тут немного теряются тестировщики и не понимаю что они дошли до конца теста
а в консоли хорошо видно что вызывается
s/libs.rc6.jsпо https а вот
js/libs4.jsпочему то по http.
и попутно немного оффтоп
я могу кнопку закончить тестирование каким то образом поместить в поле сообщение? .. а то у меня тут немного теряются тестировщики и не понимаю что они дошли до конца теста
#10
Отправлено 08 Июнь 2023 - 19:50
kostin_ds (07 Июнь 2023 - 12:34) писал:
я могу кнопку закончить тестирование каким то образом поместить в поле сообщение? .. а то у меня тут немного теряются тестировщики и не понимаю что они дошли до конца теста
- А зачем кнопку помещать в Сообщение, если можно просто в самом сообщении написать, чтобы они нажали кнопку Закончить? Можно в конце теста добавить объект сообщение и в нем это написать. У Вас в тесте перемешивание или случайная выборка вопросов включена или они идут подряд? Если там включено перемешивание или выборка, то чтобы сообщение выдавалась всегда и выдавалось в конце, нужно будет сделать в корневой группе папку, в которой поместить все вопросы, и для этой папки установить перемешивание или случайную выборку, а для корневой группы оставить прямой порядок выдачи объектов, и в ней будет только эта папка и сообщение, тогда сообщение будет всегда в конце теста:
Другой вариант это просто написать в инструкции к тесту, что в конце нужно будет нажать кнопку Закончить.
#11
Отправлено 09 Июнь 2023 - 15:15
kostin_ds (07 Июнь 2023 - 12:34) писал:
да включено то и в индиго был HTTPS. но вот только все равно почему то именно этот редирект не работал как надо.то есть стандартная практика https через nginx на https целевого сервера. а в консоли хорошо видно что вызывается
s/libs.rc6.jsпо https а вот
js/libs4.jsпочему то по http
- Специально проверил на демо сервере, там все работает как надо по HTTPS и редирект на HTTPS:
Именно к самой INDIGO тут никаких вопросов нет, а что там с NGINX, почему через него что-то работает не так и какие там настройки мы не знаем, это уже выходит за рамки поддержки по INDIGO.
Ответить
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных