Как определить, размещен ли мой PHP-скрипт другими
Я продаю PHP скрипт онлайн за 35$ для отдельного пользователя
Есть ли способ определить, размещен ли мой скрипт более чем одним пользователем?
Должен ли я использовать какую-либо логику в моем сценарии, чтобы найти его личность?
Есть ли простой способ найти пирата
Пожалуйста, помогите мне. (извините за грамматические ошибки)
5 ответов
Например, где-то в вашем скрипте:
<?php
file_get_contents('http://yourserver.com/tranck_script_users.php?site='.url_encode($_SERVER['HTTP_HOST']));
?>
Таким образом, вы увидите, какие хосты используют ваш скрипт. Конечно, любой может удалить эту строку из вашего скрипта, нет 100% способа узнать наверняка.
Невозможно сделать это без (IMO) влияния на безопасность / конфиденциальность ваших пользователей.
Единственный "чистый" способ сделать это - закодировать ваши сценарии с помощью такого инструмента, как IonCube (есть много других, но никогда не использовал их), и ограничить выполнение в определенном домене. Недостатком (вы также можете видеть это как плюс в зависимости от вашей схемы лицензирования) является то, что пользователи не могут видеть / изменять ваш код.
Если вы можете, попробуйте сделать простые звонки на ваш сервер, чтобы отследить использование скрипта, вы должны отправить доменное имя и IP-адрес. Используйте cURL для этого. Если ваша бизнес-логика это позволяет, вы можете пойти дальше, отключив функцию скрипта, если отслеживание не будет успешным.
Поскольку PHP - это просто текст, любой может удалить часть кода отслеживания. Попробуйте запутать код.
В PHP нет надежного способа предотвратить использование вашего скрипта кем-то еще. Поскольку PHP использует компиляцию точно в срок, исходный код может прочитать любой, имеющий доступ к файлам. Это означает, что любая логика call-home, которую вы вставите в свой скрипт, может быть легко отключена. Лучшее, что вы можете сделать - это запутать его, но код все равно может быть отредактирован кем-либо с достаточной решимостью.
Лучшее решение - использовать хорошую лицензию или разрабатывать на языке, который можно распространять уже скомпилированным. С PHP нет надежного способа предотвратить повторное использование вашего исходного кода.
Я призываю вас не включать в ваш сценарий какие-либо функции call-home. Во-первых, его можно отключить, поэтому он по сути бесполезен. Во-вторых, это приведет к значительным задержкам даже у законных пользователей вашего скрипта. Наконец, если вы должны вставить это, очень важно, чтобы вы сказали своим пользователям, что вы делаете это.
Вы не можете ничего сделать, чтобы свести на нет пиратство с помощью не скомпилированных скриптов. Любой может изменить источник, чтобы удалить любые средства защиты, которые у вас есть. Однако вы можете попытаться запустить сценарий с помощью какого-либо инструмента запутывания или иным образом попытаться вручную "закодировать" файл, во многом так же, как это делают многие вредоносные программы PHP. Однако обфускация и этот тип кодирования могут быть побеждены кем-то, у кого достаточно времени.
Если вы готовы вложить деньги в эту проблему, вы можете проверить IonCube Encoder или Zend Guard. И то, и другое защищает ваш скрипт, и я знаю, что, по крайней мере, Zend Guard разрешает лицензирование для каждого сервера. Однако эти решения потребуют от ваших конечных пользователей установки загрузчиков IonCube или Zend.