Почему SDK с открытым кодом является уязвимым: как интегрированный SDK влияет на ваше приложение
Вас, как мобильного маркетолога, часто просят интегрировать различные SDK в ваши приложения для аналитики, монетизации и, конечно же, атрибуции. Эти SDK бывают разных форм и размеров и имеют разных атрибутов. Одна из основных характеристик SDK — это является ли он открытым или закрытым. Хотя некоторые компании утверждают, что открытый исходный код – это лучшее решение, практика показывает обратное. Открытый код не только уступает в рабочих характеристиках, но и подвергает вас риску, как именно – я объясню в этом посте.
Так в чем же именно разница между этими двумя типами SDK, и как эта разница сказывается на маркетологах? Давайте посмотрим.
В использовании открытого SDK есть ряд преимуществ:
- Прозрачность — Открытый исходный код означает, что код полностью доступен для всеобщего обозрения и (в большинстве случаев) для всех желающих. У каждой библиотеки есть владельцы, которые контролируют окончательные изменения, но любой разработчик может внести свои предложения и участвовать в изменениях.
- QA — Создание открытого исходного кода обычно означает, что это совместная работа сообщества, когда множество различных соавторов работают над совершенствованием кода. Это означает, что ошибки обнаруживаются и исправляются быстрее.
- Настраиваемость — Многие разработчики предпочитают использовать открытый исходный код, поскольку он дает им больше свободы для внесения правок и изменений.
- Популярность —Сейчас модно иметь открытый код, поэтому многие компании пытаются интегрировать открытый исходный код любым возможным способом.
Тем не менее, принимая решение в пользу открытого SDK, необходимо учитывать некоторые существенные недостатки, а также значительные преимущества интеграции закрытого SDK в свои приложения.
- Незащищенность — Прежде всего, в отличие от закрытого, открытый SDK выставляет вашу кодовую базу на всеобщее обозрение. Это облегчает работу мошенникам, поскольку у них в распоряжении оказываются все явки и пароли вашей системы. Кто угодно может скопировать http-запрос, изменить параметры на ложные данные и отправить их на сервер. Некоторые SDK построили особую логику, позволяющую серверу понять, что данные действительно отправлены SDK. Открытый код оголяет эту логику, делая ее уязвимой для манипуляций.
- Псевдо-открытость — Многие компании, которые гордо заявляют, что они используют «SDK с открытым исходным кодом», имеют только полуоткрытую версию, то есть ее можно просматривать, но нельзя менять. SDK с открытым исходным кодом, в который сторонним разработчикам нельзя вносить изменения, как бы теряет всю суть открытого кода. Если SDK технически открыт, но является закрытым для изменений и поправок, он лишен ключевого элемента открытого кода.
- Контроль — Поскольку код, в общем-то, открыт, любой желающий может взять исходный код SDK, изменить его по своему усмотрению и интегрировать в свое приложение. Это может привести к появлению множества неконтролируемых и неизмеримых версий SDK, что делает управление различными «нелегальными» версиями вашего SDK практически невозможным.
- Размер — Существует мнение, что закрытый SDK, влияет на «вес» приложения, то есть на то, сколько места он занимает на телефоне пользователя. Но в действительности все наоборот. Фактически, закрытый SDK позволяет маркетологам знать точный размер кода, который они интегрируют, в то время как размер открытого кода невозможно предвидеть, поскольку он находится на телефонах пользователей.
Размер может являться существенным препятствием при работе с открытым исходным кодом. Если в код были внесены даже малейшие изменения, любое обновление больше не будет соответствовать выровненной сборке, что означает, что каждое обновление потребует нового цикла настроек и модификаций. Результат – сплошная головная боль…
Маркетологам приложений важно полностью понимать конечный продукт, который они хотят интегрировать. Также немаловажно понимание того, каких маркетинговых усилий потребует создание такого продукта. Выбирая поставщика атрибуции, необходимо тщательно взвесить все «за и против» использования открытого и закрытого SDK исходя из ваших потребностей.