Завтра
кому надо будет - распакует и распространит а так тебе написали уже несколько вариантов, но ты на каждый ответил "не хочу, не буду"
su
отличный совет) еще варианты?
вариант, не использовать защиту в предложенном виде, а вынести бизнес логику на сервер, и защитить его проверенным методом - АПИ с OAuth2 авторизацией.
Завтра
^
Andrey
кому надо будет - распакует и распространит а так тебе написали уже несколько вариантов, но ты на каждый ответил "не хочу, не буду"
кому надо, взламывают и денуво и другое, тут вопрос соотношения защита\сложность варианты читал и спасибо за них, исходя из них я описал вариант, который я выбрал в итоге. По поводу бизнес логики на сервере - да, знаю что самый лучший, но и самый проблемный(нагрузка, постоянное соединение). Нет задачи "закриптовать, запаковать, защитить и поднять защиту вокруг". Задача просто усложнить человеку внести свои правки в код, хотя бы уйти от "открыть js файл, который запускаешь и изменить 20ую строку"
Andrey
если ты про то, что можно изменить его, то не каждый знает как и вообще не каждый может понять, что нужно вообще с маком манипуляции делать. А это тот минимум, который пойдет для защиты)
Andrey
почему?
su
почему?
во первых, если у тебя будет MAC-адрес клиента, до того, как ты его пропишешь в приложении, перед shipping-ом приложения и отправки клиенту ссылки на загрузку, ты просто всю систему защиты раскрваешь, вот и все. в конце концов будет достаточно одного скрипткиддиса, который напишет скриптик, позволяющий перепрописать этот прошитый MAC-адрес на любой другой, вот и все, или вообще, выпилить это функционал, при "дистрибуции" через torrent-трекеры. одна "пропатченная" версия может распространяться сколько угодно много и долго
Without Hands
Ребят, наверное мало инфы дал. Приложение электрон, оно само по себе не зависит от сервера и может работать без него. Сейчас нужно сделать так, чтобы это приложение можно было контролировать на уровне "рабочее/не рабочее". Решил просто генерить рандомный токен и на сервере просто хранить список "рабочих" токенов. Но в довесок нужна логика, которая говорила бы людям "не используй более одной учетной записи(токена) в один момент времени(погрешность 30-90 сек). Решил сделать так: при первом запуске авторизация(проверка на работоспособность токена) и соотношение мак адреса клиента с токеном. Далее пинг с передачей мака и токена, а на сервере проверяется, если соотношение мака с токеном не верное, то закрывается программа. А неверное соотношение может быть в случае, когда второй логин перебивает линковку мака с токеном, и соответственно первый уже невалидным получается
Почему ты jwt не хочешь использовать?
Alexiagray
Используй jwt и не еби мозги
Without Hands
Andrey
Почему ты jwt не хочешь использовать?
так тут вопрос же не в том, как генерить токен, а больше как сделать чтобы не пользовались в один момент времени одним и тем же токеном
su
так тут вопрос же не в том, как генерить токен, а больше как сделать чтобы не пользовались в один момент времени одним и тем же токеном
у тебя приложение должно делать shipping подготовленного ПО по уникальным ссылкам загрузки, это раз, два, тебе все равно нужен сервер сборки, на котором вести учет переданных клиентами MAC-адресов для регистрации и подготовки приложения, так что фактически у тебя будет серверная часть. "как сделать чтобы не пользовались в один момент времени одним и тем же токеном" - вести учет MAC-адресов на сервере сборки приложения
Andrey
да, учет мак адресов я и решил вести на сервере
su
да, учет мак адресов я и решил вести на сервере
но это старая схема, ей пользовалиcь еще при царе горохе, я не знаю, зачем это вот все, но да, такая схема есть. она еще усиливается генерацией уникального ключа продукта (как в прошлых версиях Windows) но это никак не мешало распространению Windows. J3QQ4-H7H2V-2HCH4-M3HK8-6M8VW
Anonymous
отличный совет) еще варианты?
У меня есть совет 50/50
Anonymous
Зарегистрируйся и почитай доки у сервиса keygen.sh
Anonymous
Это апишка для того, что ты хочешь
Anonymous
У них много примеров
Anonymous
По их админ панели и докам можно придумать простой флоу защиты у себя
Anonymous
Там в админке есть создание плана подписки и у него куча разных опций типа только 1 юзер онлайн и написано как это достигается
Andrey
спасибо, интересно вроде выглядит) Посмотрю обязательно
su
Зарегистрируйся и почитай доки у сервиса keygen.sh
мне идея нравится, но тут получается, что сервер не на твоей стороне, а их. у меня с этим проблем нет, но вот у @HulioEglesias могут быть сложности, как я понимаю, с использованием сторонних сервисов. все проблема в том, что по какой-то неведомой мною причине, работа с приложением online отвергается, но а offline много не придумаешь, все по старинке, заказал болванок, напечатал в Калуге, и пошел по ларькам продавать ;)
Andrey
онлайн мне нравится, но изначально написано было все для офлайна и самый простой способ - сделать просто одноразовую проверку, чтобы в случае чего убрать и отдать офлайн версию
su
Ну если не онлайн, то все равно взломают :) всё взламывают
по моим ощущениям, offine приложения взламывают с рейтом - 100%, онлайн - 60-70%, то есть у 30%, несмотря на популярность и массовость, удается удержаться от дискредитации пользовательских данных
Vadim
по моим ощущениям, offine приложения взламывают с рейтом - 100%, онлайн - 60-70%, то есть у 30%, несмотря на популярность и массовость, удается удержаться от дискредитации пользовательских данных
Да, если есть привязка карты или паспортных данных, там для взлома сначала нужно угнать аккаунты, а если их очень быстро будут блокировать, то вообще жесть.
su
онлайн мне нравится, но изначально написано было все для офлайна и самый простой способ - сделать просто одноразовую проверку, чтобы в случае чего убрать и отдать офлайн версию
а ну тогда такая еще идейка - сразу в CI/CD закинуть в pipeline, чтобы версия щиппилась сразу, как придет e-mail от клиента, из другого electron приложения, для регистрации, встроенного в урезанную версию. с его данными регистрации и всеми потрохами включая MAC-адрес
Anonymous
нужно на сервер логику пихать
su
Ага, а для мака собирать минут 20 для одного юзера. Notarization все дела.
а у тебя приложения для Mac OS X?, если да, вообще огород городит не надо, все уже есть в developer.apple.com https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution
Anonymous
Да, ++
И вообще, сначала раскрутите софт, а потом уже боритесь с проблемой взломов :D
su
И вообще, сначала раскрутите софт, а потом уже боритесь с проблемой взломов :D
сейчас окажется, что под мак все написано, и мы тут два дня маемся х-ней (это и так очевидно)
Vadim
Я прост не вижу проблемы установить софт без нотаризации(не могу на русский нормально перевести)
su
Я прост не вижу проблемы установить софт без нотаризации(не могу на русский нормально перевести)
уведомление перед запуском. Если нотаризовать приложение в Apple, то при запуске пользователь получит сообщение, что приложение прошло проверку на вирусы в Apple, и ничего не было найдено. Собственно, сабж. Не вижу ни одной причины, кроме "жаба душит", чтобы не включать Notarization в сборочный конвейр в XCode, кстати, в Electron как с этим вообще, он нотаризуется в XCode и программе для разработчиков Apple?
su
В Electron как с этим вообще, он нотаризуется в XCode и программе для разработчиков Apple? (см. ссылку выше)
Vadim
Как это связано с защитой от скачивания с торрентов крякнутых прог?
su
Как это связано с защитой от скачивания с торрентов крякнутых прог?
Господь с тобой, не переживай так, никак не связано для тебя, напрямую связано для меня
Anonymous
А вы вообще много электрон апп на торрентах видели?
su
А вы вообще много электрон апп на торрентах видели?
Под Mac OS X ничего не видел, на Electron, кроме бесплатного VSCode
su
Slack, Discord, Github, Skype
Notarization also protects your users if your Developer ID signing key is exposed. The notary service maintains an audit trail of the software distributed using your signing key. If you discover unauthorized versions of your software, you can work with Apple to revoke the tickets associated with those versions. Important Beginning in macOS 10.14.5, software signed with a new Developer ID certificate and all new or updated kernel extensions must be notarized to run. Beginning in macOS 10.15, all software built after June 1, 2019, and distributed with Developer ID must be notarized. However, you aren’t required to notarize software that you distribute through the Mac App Store because the App Store submission process already includes equivalent security checks.
Anonymous
Slack, Discord, Github, Skype
Ну я про взломанные :)
Anonymous
С мое колокольни вы тут пытаетесь решить проблему до ее фактического появления
Vadim
Ну классно ведь)
Anonymous
для того, чтобы ваша проблема появилась вам нужно написать софт, сделать его популярным и после этого первые школьники начнут аппу ломать :)
Anonymous
А к тому моменту вы заработаете денег и перепишете всё нативно
Anonymous
Anonymous
Ну классно ведь)
Поговорить всегда интересно :)
Anonymous
Просто имхо электрон это прежде всего этап прототипирования. Если аппа взлетает, то ее скорее всего перепишут нативно
Anonymous
Поэтому электрон и не ставит себе проблему защиты сорс кода
Anonymous
так как или прототип или оупен сорс
Vadim
Просто имхо электрон это прежде всего этап прототипирования. Если аппа взлетает, то ее скорее всего перепишут нативно
Мля, сколько у тебя миллиардов?)) Если Slack, Discord, Skype, VSCode ещё не взлетели... Это уже оффтоп) пора завязывать
Anonymous
Только слэк, но у нмх логика на сервере :D
su
Просто имхо электрон это прежде всего этап прототипирования. Если аппа взлетает, то ее скорее всего перепишут нативно
зачем, в 99.999999% достаточно поместить в AppStore, пройдя Notarization, остальное берет на себя Apple, все. Там две кнопки нажать, если ты не хакерской софт пишешь, "и так сойдет", вроде как, защищать кастомно не нужно от слова совсем, наоборот, не пройдете премодерацию в Apple с этим геморроем
su
Эппл это 30% от пирога :) ну и они там в последнее время не любят электрон
это да, проверял. а еще налоги платить, так что выходит 50% в среднем (мне неважно кто у меня заберет выручку, если в результате там останется меньше половины)
Electron.js releases
v9.0.0-beta.2 https://github.com/electron/electron/releases/tag/v9.0.0-beta.2 v9.0.0-beta.2
Artur
Всем привет, делаю свой первый проект на ElectronJS. Делаю десктопную программу, которая работает без сервера. Я понимаю, что без проблем можно использовать SQLite как бд. Но можно ли использовать и другие бд, если надо чтобы. программа устанавливалась без гемороя ? Спеасибо за ответ
Anonymous
Lowdb?
Artur
@pafnuty10 Ну по производительности, SQLite лучше, как я понимаю ?
Artur
Ну, Lowdb и Nedb - это не реаллиционные Бд
Anonymous
Ну, Lowdb и Nedb - это не реаллиционные Бд
Как я помню там чтобы завести sqlite нужно долго мудрить