
Комментарии 12
Отличная работа. Помню, мы на уроках труда делали всякие полезности ля школы - табуретки там, номерки в гардероб итд. Сейчас уже можно усилиями учеников делать школьные порталы )))
Похвальная инициативность и интерес, слабенькая база (но это с опытом проходит). Я вообще не понимаю, зачем разработчики обфусцируют приложения и пытаются запрятать API, пытаются зачем-то ограничить в устройствах и т.д. В итоге - то, что автор смог достучаться до API - благое дело, здоровый интерес. Но к вопросам security не имеет вообще никакого отношения
Итак, вводная - ученик смог ручки API подергать не через приложение. Молодец. У всех нормальных сервисов описание API является публичным документом (как раз чтобы не надо было использовать только приложение - а написать своё или сделать бота). И именно открытость принято считать "нормальным"
и имитация логина
перезашёл в свой аккаунт через Госуслуги
Это не "имитация логина". Это и есть процедура логина. Есть простое правило - не важно каким инструментом клиент пользуется, важно чтобы клиент не получил то, чего он не должен получить.
Доступ к расписанию получен? Да. И что с того ? Расписание уроков это такая же публичная информация как расписание фильмов и график работы магазина. Свои оценки получены (увидены)? Возможно. Но это нормально - ученик имеет право видеть свои оценки. Чужие оценки получены? Нет. Свои оценки внесены? Нет. Значит, конфиденциальность не нарушена. API Key (хотя это на самом деле session_key) научились вычислять? Да не вопрос, в 90% продуктов у которых есть официально доступный бакэнд этот ключ/токен вообще сервером выдается после логина.
проверку легитимности устройства
"легитимность устройства" - выдуманный маркетологами бред
Токен авторизации (X1_SSO) не привязан к «отпечатку» устройства (Fingerprint)
И это нормально
или IP-адресу
Если вы привяжете сессию (токен сессии( мобильного устройства к IP-адресу в мобильном приложении, ваш руководитель устроит вам публичную порку. IP-адрес с которого приложение на телефоне подключается к серверу, может меняться. То есть легко может получиться что привязанный к IP токен сессии протухает каждые 5 минуты при смене базовой станции телефоном. Поэтому в нормальной ситуации токены сессий никогда к IP не привязывают.
Надо только сделать возможность ставить оценки
А я вот имею обратное удовольствие: в школе у ребенка элжур реализован как приличное такое приложение в телефоне, и авторизация без дураков, яемер ЕСИА (Госуслуги). И что же - теперь при авторизации мне выдаётся мобильная страничка госуслуг, с этим вот замечательным "теперь вы будете использовать Макс". Не, не буду, но обойти этот говно баннер не могу, тк в мобильной версии ссылки "не хочу" нет. А раз не могу пройти дальше, то и приложение элжура, умеющее авторизацию хранить и не требовать при каждом входе - мне недоступно функционально. Остается сайт элжура, а там авторизацию требуется при каждом прекращении активности.
И умом понимаю, что разрабы элжура не виноваты, и бесит, что не могу авторизоваться - так даже, что уже думаю, как у них все там связано, и нельзя ли обойти.
Мертвый код: Наличие в классе
Cryptнеиспользуемых переменных для AES-шифрования и функций, работающих вхолостую (replaceChars). Это говорит о низком качестве контроля кода.
По моему мнеию, это говорит о другом. Разработчик, вероятно, не ООО, которым многое позволено в плане шифрования. Чтобы реализовать в приложении криптографию (шифрование выше DES) требуется лицензия, которую тяжко получить (ФСБ). Изначально планировал реализовать шифрование, но покапавшись в законах РФ побоялся и не зря, и поэтому сменил криптографию на обфускацию. Ему же, наверное, еще и нужно было регистрировать ПО в разных гос. реестрах, типа таможенных, или отечественного ПО.
А вот ваш код с форматированием на Python говорит, о том, что нейросеть его писала, а не вы.
безопасность системы строится на концепции «безопасность через неясность»
не очень понятно, зачем вообще в рид-онли доступе к дневнику нужна аутентификация
расписание, д/з, ФИО, оценки — это всё публичная информация, зачем её скрывать
000xpda или как я реверсил электронный дневник и нашел ключи в логах