Add README.md
This commit is contained in:
commit
f4cbad9748
60
README.md
Normal file
60
README.md
Normal file
@ -0,0 +1,60 @@
|
||||
# тестовое задание
|
||||
|
||||
### Введение
|
||||
В первую очередь я понял, что необходимо посмотреть реквесты, которые исходят от этих приложений
|
||||
воспользовался снифером & прокси сервером
|
||||
чтобы получить данные HTTPS запросов сделал рут на мобильном
|
||||
(для 3-их приложений использование система не доверяет собственно подписанным сертификатам, чтобы расшифровывать https на прокси-сервере)
|
||||
и увидел это
|
||||
|
||||
```
|
||||
METHOD: POST
|
||||
URL
|
||||
https://middle-api.magnit.ru/v2/goods/search
|
||||
HEADERS
|
||||
Accept-Encoding: gzip
|
||||
authorization: bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjAzNzc1NTZkZGFjY2QwMjA1ZDg4MTNhODYxOTQ3NzUwIiwidHlwIjoiSldUIn0.eyJpc3MiOiJpZC5tYWduaXQucnUiLCJzdWIiOiIwYmQxMDYxNC02MmM1LTQ4OWMtODJiZC1hODU0MTBmNmM5NDkiLCJhdWQiOlsibG95YWx0eS1tb2JpbGUiXSwiZXhwIjoxNzM3NzI1NTE0LCJpYXQiOjE3Mzc3MjQ2MTQsInBob25lIjoiNzk1MDI5MjYwMjEiLCJ1c2VyQ3JlYXRlZEF0IjoxNzM3NDc1OTUyLCJzZXNzaW9uX2lkIjoiYmFjZTQxNTAtMjM4ZC00ZWIzLThjMzgtZjYxYWY3YTg1YmQ4Iiwic2lnbnVwX2RhdGUiOjE3Mzc0NzU5NTIsImlzX2FkdWx0Ijp0cnVlLCJpc19lbXBsb3llZSI6ZmFsc2V9.M_V4FU...
|
||||
Connection: Keep-Alive
|
||||
Content-Length: 172
|
||||
Content-Type: application/json; charset=UTF-8
|
||||
Host: middle-api.magnit.ru
|
||||
User-Agent: okhttp/4.12.0
|
||||
x-app-version: 8.36.0
|
||||
x-device-id: ac3fdfcc-e835-3685-b93c-7a7c7c838506
|
||||
x-device-platform: Android
|
||||
x-device-tag: A391E47D-A38D-4A7C-B26D-DEBD67638CC2_L!9D5D0E4A-4E60-4EF4-83C1-D45DE9BD3906
|
||||
x-platform-version: 29
|
||||
x-request-sign: 97a2cf2d65b6daddd7b9f54ad38f5d5ec99184b0b7b7234c27b01bf769af0c3a0c892aec8d5143b4fa6157e5420916a8a539fa57bde7e66a4665d8bb87651f21
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
дальше, чтобы парсить, есть 2 варианта
|
||||
1. подделывать запросы к серверу
|
||||
2. автоматизировать оригинальные запросы нужным для нас образом и читать
|
||||
|
||||
### 1. подделываем запросы
|
||||
здесь 2 сложности
|
||||
1. токен авторизации - этот токен устаревает и его надо обновлять вручную, либо придумать как это автоматизировать
|
||||
2. подпись x-request-sign - это
|
||||
- 512 битный хэш, хэш функция неизвестна (может sha512, может blake2, может смесь с чем либо ещё)
|
||||
- неизвестный порядок данных запроса и какие в целом данные запроса использовались для подписи
|
||||
при подделке запроса эти 2 пункта надо знать
|
||||
и по итогу это великий перебор всего возможного (чересчур сложный и долгий перебор для 4 дней дедлайна)
|
||||
или
|
||||
реверс-инжиниринг apk файла (что никак не сходится с вакансией и требует навыков намного больше младшего джуна)
|
||||
|
||||
|
||||
### 2. автоматизировать оригинальные запросы
|
||||
здесь я предлагаю написать андроид предложение, которое с помощью CV будет тыкать по экрану
|
||||
(выставлять фильтры, листать ленту, перелистывать страницы)
|
||||
|
||||
и пока это всё "тыкается", прокси сервер получает все данные запросов
|
||||
при хорошей настройке прокси-сервера, и нормально написанном приложении - никаких проблем
|
||||
это я предложил вашему HR, но она сказала, что такое не подходит (ну или я её не до конца понял)
|
||||
|
||||
|
||||
# Итог
|
||||
я уже понимаю, что меня не возьмут на эту вакансию,
|
||||
но что вы хотели увидеть у кандидата с залачей спарсить приложение на вакансии начальный разработчик?
|
||||
хотя мне было бы интересно написать второй вариант
|
Loading…
x
Reference in New Issue
Block a user