Перейти к содержимому


Автоматическая регистрация пользователей из интернет


Сообщений в теме: 10

#1 kostin_ds

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 06 Июнь 2023 - 23:51

Доброго времени :)

Ситуация такая.
система установлена на сервере внутри предприятия, в интернет она не смотрит.
В интернет смотрит реверспрокси с nginx.
Просто зайти и авторизоватся можно. а вот по скриптам которые приведены на этом форуме из интернета получаем просто белую страницу.
хотя из локальной сети по скрипту авторизуется свободно.
Подскажите куда копать?

И еще вопрос попутно.
Адаптация для работы с сотовых телефонов есть?

Заранее благодарен.
если важно, лицензия куплена, ждем поставку :)

#2 Administrator

    Менеджер проекта

  • Администраторы
  • 1 410 сообщений

Отправлено 07 Июнь 2023 - 00:11

Просмотр сообщенияkostin_ds (06 Июнь 2023 - 23:51) писал:

Ситуация такая.
система установлена на сервере внутри предприятия, в интернет она не смотрит.
В интернет смотрит реверспрокси с 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 kostin_ds

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 07 Июнь 2023 - 00:17

Беда в том, что и внутри и снаружи все идете через реверс... так как копия доменной зоны поднята и на корп ДНС, Нужно это для того что бы к веб сервисам люди обращались по единому адресу, как и изнутри так и снаружи.
единственное отличие что изнутри через внутренний интерфейс а снаружи ессно через внешний,
а вот за скрипт спасибо.. попробую посмотреть со всех сторон :)

#4 kostin_ds

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 07 Июнь 2023 - 09:27

Интересное наблюдение
Если заходим из локальной сети то в логах 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

#5 kostin_ds

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 07 Июнь 2023 - 09:46

UPD
такая модель авторизации работает в IE в любом другом браузере НЕ работает. есть предположения?

#6 Administrator

    Менеджер проекта

  • Администраторы
  • 1 410 сообщений

Отправлено 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):

<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 kostin_ds

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 07 Июнь 2023 - 12:06

Только что сам до этого дошел
именно найдя этот кусок кода, оно получается что редиректит она по HTTP протоколу, когда запрос идет по HTTPS и браузеры рубят такое поскольку смешаный контент.
именно поэтому в IE 11 это работает, он не обращает внимание на смешаный контент.
то есть рубило на уровне браузера, и в консоли это видно, особенно в хроме.
так что у многих кто будет лепить HTTPS может возникнуть такая проблема.

#8 Administrator

    Менеджер проекта

  • Администраторы
  • 1 410 сообщений

Отправлено 07 Июнь 2023 - 12:27

В скрипте прописан относительный путь к файлу, а не абсолютный, поэтому по HTTPS это работает. Проблема опять таки упирается не в INDIGO, а в конкретные настройки Вашего прокси. Получается, что у Вас SSL сертификаты загружены не в INDIGO, а в NGINX? Ну тогда INDIGO не знает, что запросы идут по HTTPS, т.к. получает их по HTTP от NGINX, после NGINX получает ответ, шифрует трафик и отправляет в браузер. Можно включить полное проксирование с подключением сертификатов в самой INDIGO:

stream {
	server {
		listen 443;
		proxy_pass ip_address_сервера_indigo:443
	}
}

Но в этом случае NGINX не должен обслуживать другие https-сайты, т.к. в этом случае порт 443 может быть занят только для проксирования запросов к INDIGO. Тогда NGINX будет стримить уже зашифрованный трафик INDIGO напрямую. Если у Вас на NGINX висят ещё какие-то сайты, то лучше оставить все как есть на чем Вы сейчас остановились, иначе может нарушиться работа других сайтов.

#9 kostin_ds

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 07 Июнь 2023 - 12:34

да включено то и в индиго был HTTPS. но вот только все равно почему то именно этот редирект не работал как надо.то есть стандартная практика https через nginx на https целевого сервера.
а в консоли хорошо видно что вызывается
s/libs.rc6.js
по https а вот
js/libs4.js
почему то по http.

и попутно немного оффтоп
я могу кнопку закончить тестирование каким то образом поместить в поле сообщение? .. а то у меня тут немного теряются тестировщики и не понимаю что они дошли до конца теста :)

#10 Administrator

    Менеджер проекта

  • Администраторы
  • 1 410 сообщений

Отправлено 08 Июнь 2023 - 19:50

Просмотр сообщенияkostin_ds (07 Июнь 2023 - 12:34) писал:

я могу кнопку закончить тестирование каким то образом поместить в поле сообщение? .. а то у меня тут немного теряются тестировщики и не понимаю что они дошли до конца теста :)

- А зачем кнопку помещать в Сообщение, если можно просто в самом сообщении написать, чтобы они нажали кнопку Закончить? Можно в конце теста добавить объект сообщение и в нем это написать. У Вас в тесте перемешивание или случайная выборка вопросов включена или они идут подряд? Если там включено перемешивание или выборка, то чтобы сообщение выдавалась всегда и выдавалось в конце, нужно будет сделать в корневой группе папку, в которой поместить все вопросы, и для этой папки установить перемешивание или случайную выборку, а для корневой группы оставить прямой порядок выдачи объектов, и в ней будет только эта папка и сообщение, тогда сообщение будет всегда в конце теста:

Изображение

Другой вариант это просто написать в инструкции к тесту, что в конце нужно будет нажать кнопку Закончить.

#11 Administrator

    Менеджер проекта

  • Администраторы
  • 1 410 сообщений

Отправлено 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 анонимных