Je développe une application PHP que je prévois de vendre et de distribuer. Je veux contrôler qui a accès aux fonctions principales et à l'installation des applications via une sorte d'appel à mon serveur, qui vérifie si l'emplacement d'installation du script (example.com) se trouve dans une base de données, voire vérifie une clé de licence de quelque sorte.Comment sécuriser un produit PHP en utilisant btcompiler et les clés de licence?
Quelqu'un at-il des directives générales pour sécuriser un programme PHP distribué? Je ne m'attends pas à une sécurité totale, mais je voudrais lancer le script avec un essai, et je voudrais décourager la personne moyenne de modifier le code pour essayer de contourner l'achat du script. J'avais deux idées en tête - avoir un script "phone home" avec l'adresse du serveur de script, et vérifier cette adresse par rapport à une base de données (assez simple), ou en plus de générer une sorte de clé de licence et coder en dur cette clé dans le script, soit dans un fichier, soit dans les requêtes d'installation de base de données.
Ma question est, si je vais cette dernière voie (codage en dur), quel est le moyen le plus efficace de coder en dur une clé dans un script lors de l'exécution et le package tout dans un fichier zip unique?
- J'utiliserais bcompiler pour tenter d'obfusciter les fonctions d'authentification utilisées ci-dessus. Je sais que vous avez besoin de support pour bcompiler compilé en PHP afin de écrire bytecode, mais y at-il des exigences spéciales à exécuter compilé bytecode? Mon application fonctionnera sur une variété de machines, mais avec la condition commune qu'elles exécuteraient toutes PHP5, donc le code doit être capable de fonctionner sur des environnements d'hébergement restrictifs (où ils ne peuvent pas télécharger des bibliothèques externes tertiaires PHP, par exemple).
Merci pour vos commentaires - ma relation avec les gens qui achèteraient mon script n'est pas comme un type de fournisseur-client, où je peux demander un contrat, je viens projeter de vendre le script à n'importe quel nombre de personnes, comme n'importe quel autre article. Je ne suis pas trop préoccupé par les problèmes juridiques concernant mon code - si quelqu'un veut pirater mon code, je ne peux pas les arrêter. Je veux juste décourager le client moyen d'essayer de se mêler du système d'authentification. –
@Andrew: OK; Si vous comprenez que vous ne pouvez pas les empêcher de faire le mal, mais seulement les ralentir/rendre les choses plus difficiles, c'est vraiment une bonne chose. –