- Регистрация
- 11.12.2016
- Сообщения
- 100
- Благодарностей
- 53
- Баллы
- 28
Всем привет!
Помогите разобраться: пишу софт, но для реализации нужна точная последовательность http запросов. В альтернативном методе частично можно решить вопрос с запретом отправки определенных заголовков, которые летят по умолчанию.
К примеру такие:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Нужно выбрать альтернативный способ отправки запросов и оставить данные поля пустыми (тогда они вообще не будут фигурировать в запросе -
это хорошо), но увы не всегда так. Если поле connection: keep-alive мы можем убрать оставив его пустым после двоеточия, то с заголовком proxy-connection: keep-alive такое уже не проканает, он отправляется в любом случае даже если оставить после двоеточия пустое значение. Proxy-connection появляется когда запросы отправляются через проксю, вырезать/удалить и тд его невозможно, он всегда отправляется. Если значение после двоеточия оставляем пустым, то в запросе он фигурирует как "Proxy-connection:".
Далее, если мобильное приложение отправляет в определенной последовательности заголовки, то невозможно их скопировать в этой же последовательности. В альтернативном методе отправки вроде бы все хорошо, последовательность идет в норме, но юзер агент зараза такая всегда ставится в конец, а приложение его ставит в начале, но есть такие моменты когда его нужно в середину воткнуть, а такого зеннопостер не разрешает делать.
Вы скажите, что последовательность роли не играет, но, к сожалению, это не так. Есть приложения которые отказываются работать если не соблюдается последовательность, а есть такие в которых аккаунты не распознаются что они юзаются в мобильном приложении как раз из за этого. К примеру будет аккаунт acc1, сервис его примет, даст войти, но привелегии как для мобильного юзера не включит так как видит, что заголовки идут не в том порядке - в результате получаем кастрированный софт. Это технология защиты как я понимаю которая плюсуются к пассивному фингерпринту tcp заголовков - я очень долго разбирался в этом и на 100% понял, что именно последовательность играет роль. P0f фингерпринт по TCP стеку понимает, что мобильное приложение вовсе не мобильное и работает через windows если запустим без прокси, который эмулирует отпечаток андроида/ios, но технология проверки последовательности заголовков - это дополнение. Если мы в точности скопируем все данные для отправки на сервер, запустим ерез правильную проксю в которой будет правильный tcp отпечаток системы, то все равно ударимся лицов в грязь т.к. система на стороне сервера увидит несовпадение последовательности заголовков.
Собственно 2 вопроса: как с альтерантивным методом запросов вырезать заголовок proxy-connection (если мы работаем через прокси) и как создать верную последователность заголовков, что нам необходимо для правильной реализации софта?
Помогите разобраться: пишу софт, но для реализации нужна точная последовательность http запросов. В альтернативном методе частично можно решить вопрос с запретом отправки определенных заголовков, которые летят по умолчанию.
К примеру такие:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Нужно выбрать альтернативный способ отправки запросов и оставить данные поля пустыми (тогда они вообще не будут фигурировать в запросе -
это хорошо), но увы не всегда так. Если поле connection: keep-alive мы можем убрать оставив его пустым после двоеточия, то с заголовком proxy-connection: keep-alive такое уже не проканает, он отправляется в любом случае даже если оставить после двоеточия пустое значение. Proxy-connection появляется когда запросы отправляются через проксю, вырезать/удалить и тд его невозможно, он всегда отправляется. Если значение после двоеточия оставляем пустым, то в запросе он фигурирует как "Proxy-connection:".
Далее, если мобильное приложение отправляет в определенной последовательности заголовки, то невозможно их скопировать в этой же последовательности. В альтернативном методе отправки вроде бы все хорошо, последовательность идет в норме, но юзер агент зараза такая всегда ставится в конец, а приложение его ставит в начале, но есть такие моменты когда его нужно в середину воткнуть, а такого зеннопостер не разрешает делать.
Вы скажите, что последовательность роли не играет, но, к сожалению, это не так. Есть приложения которые отказываются работать если не соблюдается последовательность, а есть такие в которых аккаунты не распознаются что они юзаются в мобильном приложении как раз из за этого. К примеру будет аккаунт acc1, сервис его примет, даст войти, но привелегии как для мобильного юзера не включит так как видит, что заголовки идут не в том порядке - в результате получаем кастрированный софт. Это технология защиты как я понимаю которая плюсуются к пассивному фингерпринту tcp заголовков - я очень долго разбирался в этом и на 100% понял, что именно последовательность играет роль. P0f фингерпринт по TCP стеку понимает, что мобильное приложение вовсе не мобильное и работает через windows если запустим без прокси, который эмулирует отпечаток андроида/ios, но технология проверки последовательности заголовков - это дополнение. Если мы в точности скопируем все данные для отправки на сервер, запустим ерез правильную проксю в которой будет правильный tcp отпечаток системы, то все равно ударимся лицов в грязь т.к. система на стороне сервера увидит несовпадение последовательности заголовков.
Собственно 2 вопроса: как с альтерантивным методом запросов вырезать заголовок proxy-connection (если мы работаем через прокси) и как создать верную последователность заголовков, что нам необходимо для правильной реализации софта?