• Как защитить открытый PHP код?

    @PiloTeZ
    ...
    Мои предложения:
    1. Зашифровать файл. Расшифруют, но не сразу, многим лень или не умеют, так что можно выиграть много времени
    2. Замаскировать участок кода, проверяющий лицензию под другой скрипт (например сделать вид, что этот код работает с кэшем)
    3. Можно вшить код проверки в какую-нибудь популярную библиотеку. К примеру написать код в глубине класса PHPExcel
    4. Можно маленькую, но важную часть скрипта перенести на свой сервер. Тогда юзер врядли сможет бесплатно полноценно использовать вашу программу
    5. Есть вариант обфусцировать код

    Если скомбинировать некоторые варианты, то получится довольно трудная для взлома защита

    Я подобную задачу просто решил, зашифровал файл проверяющий ключи в base64 через сервис visavi.net/services/encryption.php. Расшифровать не трудно, но нужно не много подумать. Покупатели были новички в программировании, поэтому ~1.5 года скрипт был в целости и сохранности.
    Ключ кстати просто генерировался из домена :D

    Для платных программ обязательно надо делать хотя бы минимальный уровень защиты, иначе можно потерять вообще всю прибыль. Чем хитрее защита, тем дольше скрипт будет в сохранности
    Ответ написан
    2 комментария
  • Как защитить открытый PHP код?

    RayMefise
    @RayMefise
    Java, PHP, C, C++, C#, .NET, QT
    Сам код ты никак не защитишь. В лучшем случае тебе помогут копирайты и лицензирование кода. Если тебя интересует защита от использования без лицензии, то есть один способ который я применял в своем проекте. Этот способ защищает не на 100% но может доставить гемороя тем кто решит использовать ваш продукт бесплатно. Оговорюсь так же что способ этот не всем может подойти.

    Теперь собственно сам способ. Часть кода PHP без которого не будет работать ваш проект переносим на CGI написанный например на СИ++.
    В CGI встраиваем проверку лицензии привязанную во первых к маку и IP сервера на котором будет работать проданный ресурс. Вторую часть проверки переносим на ваш сервер с лицензиями. То есть продукт при работе должен периодически (или при определенных операциях) проверять установленную лицензию которая вшита в CGI. При проверке ваш программный продукт обращается к серверу и отправляет ему шифрованную информацию о лицензии. По этой информации на вашем сервере определяются данные о сервере и так же шифрованно отправляются назад программному продукту. Тот сверяет эти данные с данными о сервере и если данные верны генерирует временный токен, который сохраняет в укромном месте вашего программного продукта и отправляет на ваш сервер с лицензиями. Для защиты от подмены данный о сервере, после успешной проверки отправляйте запрос на ip сервера вызывая определенную функцию CGI которая должна сопоставить токены. если совпадают, то лицензию проверял действительно программный продукт с сервера на который он зарегистрирован. При этом система должна автоматически обновляться с вашего сервера до последней версии и во время обновлений вам необходимо изменять методы шифрования. Так как CGI закрыт и внутри него содержатся важный для работы функционал, то удалить его или взломать будет проблематично. Возможно система запутанная и не лишена недостатков, но в работе показала себя неплохо.

    С другой стороны вам правильно написали, что если ваш продукт будет интересен другим людям, то скорее всего его рано или поздно взломают, и указанная выше система в купе с постоянными обновлениями будет лишь доставлять временный геморой.

    Надеюсь смог вам помочь.
    Ответ написан
    3 комментария
  • Актуальны ли браузерные игры?

    В качестве примеров из новых без флеш:
    https://www.starbreak.com/
    https://3igames.mail.ru/games/grc
    Ответ написан
    Комментировать
  • Исключение для preg_replace?

    Stalker_RED
    @Stalker_RED
    $whitelist = ['google.com', 'yandex.ru', 'vasya.pupkeen.me'];
    
    if ( in_array($nickname, $whitelist) ) {
      // ничего не делаем
    } else {
       ... preg_replace() ...
    }


    Можно покороче и без наворотов:
    if ($nickname !== 'google.com' ) {
       ... preg_replace ...
    }
    Ответ написан
    Комментировать
  • Метод хранения большого количества картинок на сайте

    pavel_salauyou
    @pavel_salauyou
    Symfony2 & Angular разработчик
    увеличивается скорость листинга папки
    легче делать перенос, или даже можно разделить файлы по нескольким серверам
    быстрое нахождение нужного файла
    Ответ написан
    Комментировать
  • Сколько брать за руководство проектом по созданию сайта?

    Если вы работаете над проектом как частное лицо, а не компания, то стоимость работ для заказчика рассчитывайте следующим образом: средняя зарплата менеджера проекта - 70 тысяч рублей. 21 рабочий день по 8 рабочих часов: 416 рублей в час - округлим до 500 (согласитесь, получилась реальная стоимость). Далее представляете сколько часов вам потребуется для реализации данного проекта. Умножаем получившиеся часы на 1.25 и умножаем на 500 руб/час = получаем стоимость работ по управлению проектом.

    * по аналогии можно просчитать стоимость верстки, при зарплате верстальщика примерно 40 000
    Ответ написан
    8 комментариев