Comments 79
Что за ересь про обфускацию и ретрофит? "Стандартный обфускатор" — это Proguard? Вы в курсе, что он не обфусцирует код, а минифицирует? Торчат наружу методы — и чего? Это возможность для кибератаки? о_О'
Что за ересь про тестирование геттеров и сеттеров? Вы что, руками писали их до дата-классов?
Нет, Proguard ничего не обфусцирует. Он не запутывает код программы, а только минифицирует его.
В любом случае, даже если не спорить о терминах, если приложение имеет внутри себя урлы, и умеет по ним обращаться, то получить эти урлы для хакера не составит труда. О какой кибератаке говорят "спецы" по безопасности, непонятно.
Насколько я понимаю, без обфускации ProGuard приложения оказываются несколько более подверженными реверс-инжинирингу. Но тут предпочёл бы услышать мнение эксперта, могу сам что-то неправильно понимать.
Моё мнение основано на том, что я знаю, что делает Proguard, а так же о том, что такое обфускация. Ребята, например, из Licel говорят на конфах то же самое.
Ваши картинки вообще неубедительны, на заборе тоже написано.
И, в любом случае, вопрос был не о терминологии(том, как назвать то, что делает Proguard), а о том, что собрались прятать с его помощью "спецы" из Сбера.
Вопросов в вашем исходном комментарии было несколько разных, мой комментарий был к одному из них («Вы в курсе, что он не обфусцирует код, а минифицирует?»), а вы по ходу треда подменяете его другим.
Это спор о терминологии. Я буду продолжать называть минификацию минификацией. Обфускация подразумевает значительное усложнение отладки и изучения кода. Proguard этого не даёт. В статье подразумевалось, что им нужно это усложнение.
Ещё рекомендую воспользоваться переводчиком.
Что за ересь про обфускацию и ретрофит? «Стандартный обфускатор» — это Proguard?
Да, это ProGuard.
Документация от Google
Вы в курсе, что он не обфусцирует код, а минифицирует?
Он и обфусцирует и минифицирует. В данном случае, запутывание происходит за счёт переименовывания классов, методов и полей, чтобы их было сложнее читать, но не даёт гарантии от того, что нельзя будет разобраться в «мусорных» названиях методов.
А тут есть примеры работы ProGuard
Торчат наружу методы — и чего? Это возможность для кибератаки? о_О'
Проще восстановить API для работы с сервером, точнее, будет лежать уже готовый API, который можно копировать и вставлять к себе в проект.
Что за ересь про тестирование геттеров и сеттеров?
Если поведение геттера и сеттера производит какие то манипуляции с данными, например, конвертация в другой формат, то у нас обязательное требование на тестирование таких методов
Проще восстановить API для работы с сервером, точнее, будет лежать уже готовый API, который можно копировать и вставлять к себе в проект.
Мы точно говорим про кибератаки?
например, мы пишем на Kotlin тесты и используем data classes (так мы экономим время, чтобы не писать тесты на геттеры, сеттеры, equals(), hashCode() и прочее).
Ну, в общем, понятно.
Мы точно говорим про кибератаки?
Не совсем, это больше было требование отдела безопасности
Продавливать свою позицию можно, но это когда на проекте идейные люди с рогом носорога :)
Если поведение геттера и сеттера производит какие то манипуляции с даннымиПочему в геттерах и сеттерах есть манипуляции с данными?
Короче вы используете Котлин не так, как нужно. Вашу проблему легко решают как AutoValue, так и обычный студийный генератор кода. А Котлин просто приносит вам больше методов.
Вашу проблему легко решают как AutoValue
Мы брали в проработку изучение этой проблемы. Были рассмотрены Lombok, AutoValue и Kotlin data class. По итогу остановились на Котлине, не только из-за удобства дата классов, а еще для того, чтобы в дальнейшем полностью перейти на него и начать изучение с небольших шагов, так как команда очень большая и уровень разработчиков разный. Поэтому начали с тестов и дата классов, дальше будем проводить обучение и наращивание кода на котлине.
Естли в них нет никакой кастомной логики, зачем они вообще нужны-то? Ну сделайте публичные поля, и пишите туда с чистой совестью. Заодним и перфоманс повысите :)
Потому что встроенный антивирус проверяет СМС на попытки социнжиниринга. Вынужденная мера, учитывая величину клиентской базы. Но, впрочем, в этом механизме грядут изменения к лучшему.
Но похожая на вашу была ситуация с яндекс почтой, ни в какую не запускалась без постоянного доступа к геолокации, правда после волны народного гнева быстро переделали.
Тут точно не знаю. Полагаю, что попросит позвонить в call-центр
Я бы (на месте программы) уведомил пользователя и отослал в банк «чёрную метку», накладывая на аккаунт временные ограничения, целью которых было бы снижение вреда утечки данных.
Но все же. Если сбербанк ведет агрессивную политику продвижения мобильного приложения, то доступ к СМС за приложение нарушает не мало законов. Во первых конституцию РФ, тайна переписи там только по решению суда можно. Во вторых приложение для физических лиц и даже если оно условно бесплатно то работает закон о защите потребителей, в нем тоже ясно написано что обуславливать одну услугой другой запрещено.
Сейчас увидел, что уже выложили в Google Play версию 8.4. В ней доступ к СМС больше не требуется для запуска приложения.
Правда, при входе в Уведомления мы попросим доступ. Это нужно для того, чтобы в одном окне хронологически показать и СМС-, и пуш-уведомления. Там просто откажитесь давать права и поставьте галочку "Больше не спрашивать" и все. Приложение останется полнофункциональным.
Тоже антивирус требует. Какая-то его внутренняя кухня, к сожалению, у меня нет инфы, что он с этим делает.
Тут просто надо оценить размер нашей команды — более 100 человек работают над приложением. Не могут же все знать все. Ребята, которые занимаются интеграцией антивируса, разумеется, знают про него все.
Я попробую выяснить.
Вообщем звонить и смотреть историю звонков (скорее всего) никто не будет, а разрешение нужно тупо что бы идентифицировать ваше устройство и проверить что оно безопасно.
во первых конституцию РФ, тайна переписи там только по решению суда можно.
Вы рыбу с мясом не путайте. Когда ещё не было Интернета и переписывались не в Телеграм, а телеграммами (бумажными), то телеграфисты и почтальоны спокойно читали текст, и никого за это не судили. Просто потому, что их работа была связана с этим. Соответственно, под нарушение закона о тайне переписки попадали лишь те, кто, имея доступ к частной информации, сообщали её третьим лицам либо получали доступ не в связи со своими служебными обязанностями.
Таким образом, программа, читающая ваши СМС, не нарушает вашу тайну переписки, пока содержимое переписки не покидает ваш девайс. Чтобы произошло нарушение вашего права на тайну переписки, ваши СМС должны читать посторонние люди.
Понятен переход на Kotlin.
Если бы сейчас выбирали технологии, был бы выбор в пользу МVP+Rx? Если писать с нуля?
Или какой-нибудь MVVM+Room+coroutines?
"альфа-тестирование после того, как написали фичу"
То есть до этого разработчик что-то написал, заккомитил и сказал что все ок? Ни проверить, ни потестить?
А так убило новведение по использованию push'ей ВМЕСТО СМС. Это уже совсем никуда не годится. Я за СМС оповещения деньги плачу, почему меня принудительно (без каких-либо оповещений) переводят на push-only?
А про антивирус — отдельный разговор. На моем Xiaomi можно хотя бы закрыть запуск в заднем фоне. А то ведь проверка этим антивирусом съедала пол аккумулятора. Более того, у меня стояло приложение от UI-тестов к моему приложению. Сбербанк-клиент начал кричать что это вирус, все плохо и надо его удалить, иначе в отделение побежите. Бред полный
То есть до этого разработчик что-то написал, заккомитил и сказал что все ок? Ни проверить, ни потестить?
Альфа тестирование как раз предполагает, что сам разработчик должен протестировать написанную им фичу и только потом коммитить код и отдавать уже тестировщику тестить.
А так убило новведение по использованию push'ей ВМЕСТО СМС. Это уже совсем никуда не годится. Я за СМС оповещения деньги плачу, почему меня принудительно (без каких-либо оповещений) переводят на push-only?
К сожалению, я не могу Вам ответить по поводу таких нововведений, так как это решают совсем не разработчики
Более того, у меня стояло приложение от UI-тестов к моему приложению. Сбербанк-клиент начал кричать что это вирус, все плохо и надо его удалить, иначе в отделение побежите.
Антивирусные проверки с каждым разом становятся всё лучше, к сожалению, сейчас возникают некоторые проблемы, но с каждой версией проверки будут улучшаться
"Альфа тестирование как раз предполагает, что сам разработчик должен протестировать написанную им фичу и только потом коммитить код и отдавать уже тестировщику тестить. "
Имел ввиду: как до этого жили?
"К сожалению, я не могу Вам ответить по поводу таких нововведений, так как это решают совсем не разработчики"
То есть у вас разработчики никак не влияют на новые фичи? То есть обоснованность и возможность реализации не обсуждается?
"Антивирусные проверки с каждым разом становятся всё лучше, "
К сожалению, наблюдаю обратное.
Имел ввиду: как до этого жили?
Порой бывало, что разработчик отдавал сборку, предварительно не проверив, поэтому ввели такое жесткое правило
То есть у вас разработчики никак не влияют на новые фичи? То есть обоснованность и возможность реализации не обсуждается?
Разработчики могут влиять на фичи и могут предлагать добавить какой-то функционал, но этот переход выходит за рамки простой фичи, это скорее фундаментальное изменение, поэтому такое решение принимало руководство
Спасибо. Хочу вот узнать
"отдавал сборку" именно сборку, не исходники? То есть исходники есть только у конкретного разработчика?
А как из сборки собирается приложение? А как подцепляются общие вещи? Хочу узнать, как вообще проект разделяется на сборки и модули. Возможно это какая-то технология?
Разделения по модулям у нас происходит по принципам GRASP, тема довольно таки обширная. Если в двух словах, то мы разбиваем модули по продуктам, а в свою очередь общий функционал выносится в модули более низкого уровня и от него уже наследуются продуктовые модули. Про модульность хорошо было рассказано на Mobius 2018 Piter, у нас подобное разделение
Когда на старом телефоне с полудохлой батареей за час поездки от работы до дома заряженная батарейка съедается более, чем наполовину, в то время, как без приложения телефон вполне доживал до приезда на работу на следующий день — это как-то перебор для приложения, которым будешь пользоваться точно не каждый день и даже не факт, что каждую неделю.
И, да, я не хочу, чтобы какой-то софт (тем более банковский) шарился по моей ФС. Причем, без четкого объяснения, зачем это нужно, и как оно вообще может работать.
Установка неизв. приложений запрещена, гугл плей защита активна. Касперский через два раза на третий, реагировал. И то лишь предлагая удалить вирус.
Причем что интересно вирусы/реклама прилетали на телефон лишь тогда когда он был активен вне домашней wi-fi сети(т.е. через мобильного оператора, попутно сжирая довольно заметный объём трафика).
Началось в последние полгода. Видимо нашли уязвимости в прошивке.
«Для нас уже нет смысла использовать Retrofit»: об Android-разработке в Сбербанк Онлайн