Несколько недействительных запросов GET с телефонов Samsung - PullRequest
0 голосов
/ 15 октября 2019

при отладке своего сайта я регулярно сталкиваюсь с несколькими недействительными запросами GET, это всегда мобильные устройства Samsung. Я не имею понятия, как отследить эту проблему ... Смотрите журналы ниже с комментариями. Кажется, что устройство застревает в некотором цикле и каждый раз получает ответ 302 перенаправления. Примечание: GET /history.php/index.php «составлен» устройством пользователя, это не ссылка с кликом или ошибка в моем PHP-коде. Кроме того, если я запрашиваю /history.php/index.php в своем браузере, как и ожидалось, я просто попадаю в history.php, так как остальная часть URI игнорируется, больше ничего не происходит.

Как было сказано ранее, вВ 100% случаев это устройства Samsung Android, что в некотором роде подтверждает, что проблема не в коде моего сайта, поскольку она затрагивает все устройства.

ОБНОВЛЕНИЕ: Дальнейшие исследования показывают, что это только происходитс пользовательскими агентами "SamsungBrowser10.1". Также в журналах указывается, что они являются настоящими пользователями, а не злоумышленниками. Всегда один и тот же шаблон: пользователи перенаправляются из «history.php», потому что они не вошли в систему с помощью простого PHP: header («Location: index.php»);По какой-то причине в этот момент строка UA меняется на «Dalvik / 2.1.0 ...» (см. Ниже), и кажется, что браузер берет старый URL, добавляет косую черту и затем новое местоположение, так что это происходит (вупрощенная форма):

GET www.example.com/history.php    (UA: Mozilla 5.0 ...)
=> PHP header("Location: index.php"); exit;
GET www.example.com/index.php    (UA: Mozilla 5.0 ...) What we want !
GET www.example.com/history.php/index.php    (UA: "Dalvik/2.1.0 ...) WTF 
GET www.example.com/history.php/index.php    (UA: "Dalvik/2.1.0 ...)
GET www.example.com/history.php/index.php    (UA: "Dalvik/2.1.0 ...)
...

[END UPDATE]

Пример журнала:

User requests history.php...OK

04:19:53 +0000] "GET /pilotzone/history.php HTTP/1.1" 200 6280 "[edited]" "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36"

Пользователь запрашивает index.php ... OK

04:19:55 +0000] "GET /pilotzone/index.php HTTP/1.1" 200 6253 "[edited]" "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36"

В ту же секунду пользователь возвращается к history.php!?!

04:19:55 +0000] "GET /pilotzone/history.php HTTP/1.1" 200 9542 "-" "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36"

Фэнтезийные запросы, не сгенерированные моим PHP-кодом, все получают перенаправление 302 .. Обратите внимание, что пользовательский агент внезапно изменился!

04:19:55 +0000] "GET /pilotzone/history.php/favicon.ico HTTP/1.1" 302 590 "-" "Dalvik/2.1.0 (Linux; U; Android 9; SM-G975F Build/PPR1.180610.011)"

04:19:55 +0000] "GET /pilotzone/history.php/index.php HTTP/1.1" 302 590 "-" "Dalvik/2.1.0 (Linux; U; Android 9; SM-G975F Build/PPR1.180610.011)"

04:19:55 +0000] "GET /pilotzone/history.php/index.php HTTP/1.1" 302 590 "-" "Dalvik/2.1.0 (Linux; U; Android 9; SM-G975F Build/PPR1.180610.011)"

04:19:55 +0000] "GET /pilotzone/history.php/index.php HTTP/1.1" 302 590 "-" "Dalvik/2.1.0 (Linux; U; Android 9; SM-G975F Build/PPR1.180610.011)"

04:19:55 +0000] "GET /pilotzone/history.php/index.php HTTP/1.1" 302 590 "-" "Dalvik/2.1.0 (Linux; U; Android 9; SM-G975F Build/PPR1.180610.011)"

04:19:55 +0000] "GET /pilotzone/history.php/index.php HTTP/1.1" 302 590 "-" "Dalvik/2.1.0 (Linux; U; Android 9; SM-G975F Build/PPR1.180610.011)"

[...]

Этот запрос GET выполняется 20 раз, прежде чем Apache закрывает соединение, я полагаю. (IP-адрес удален по соображениям конфиденциальности)

...