Salut,

Voilà, donc j'ai créé un CMS, et je cherche un "Système de licence PHP".
Par exemple, si je me fais "Hacker" ou autre, le "Hacker" peut prendre tout le CMS, mais dès qu'il voudra l'installer, ou le mettre sur son site web, ça va demander une licence...
Est-ce possible de faire cela?
Comme ça, moi avec un "programme", je génère mes propres licences etc.

Merci,

12 réponses


Preuves
Auteur

Salut,

Oui, en effet j'ai déjà entendu parlé de cela...
Je ne sais pas du tout comment le procédé se déroule avec ça etc.

Preuves
Auteur

UP

Je viens un peu tard :)

Au pire, n'y a-t-il pas moyen d'héberger sur un autre hébergement des fichiers essentiels au bon fonctionnement du CMS ?

Le hacker pourrait toujours prendre le CMS mais s'il n'a pas accès aux fichiers...

Perso, je me pose la question, comment le mec pourrait récupérer les sources du CMS ? via un aspirateur ? (config HTACCESS aussi).

Salut, un aspirateur ne récupère que le code comme ci c'était un navigateur, tu n'y vois donc pas le PHP, il faut un accès direct aux fichiers (FTP par exemple), afin de récupérer tous les fichiers.

À priori, tu te creuses la tête pour pas grand chose.
La seule manière de récupérer tes fichiers php, c'est de hacker un ftp.
D'abord, c'est pas donné à tout le monde. Ensuite, le type qui va hacker un ftp pour te nuire, il aura franchement autre chose à foutre que de te piquer ton cms.
De plus, à part si tu as réussi à coder LE cms, celui qui est tellement simple à mettre en place que tout développeur un peu sérieux ne pourrait pas le refaire lui-même, ben, tes protections, elles servent pas à grand chose.
Je pense que tu tombes dans la parano pour pas grand chose.
Toutefois, tu peux déjà un peu protéger ton code d'une façon assez simple. Une méthode que j'utilise de mon côté mais pas pour les même raisons, mais j'y reviendrai.

Tu connais probablement le principe de l'include_path en php. C'est une directive de configuration qui permet d'indiquer une liste de répertoires qui serviront de base lorsque tu fais un include ou un require.
Genre, si dans ton include_path tu mets .:/home/truc/libs/, quand tu fais une include( 'bidule.php' ), il va d'abord chercher dans le répertoire courrant (le . dans ton include_path), et si le fichier n'existe pas, il ira le chercher dans /home/truc/libs/.

Là où ça peut être avantageux pour toi, c'est de mettre les fichiers les plus importants de ton CMS (voire tous les fichiers) dans un répertoire de ton serveur qui n'est pas accessible par FTP.
Bon, ça te protègera contre les hack par ftp, mais lors d'un hack du serveur complet, tout tes fichiers sont potentiellement violables, et là, c'est pas pour ton cms que tu crains, généralement... c'est pour toutes les données de tes clients.

Quoi qu'il en soit, la technique que j'ai expliquée peut aussi servir pour autre chose : des mises à jour globales.
Imaginons que j'ai un cms qui s'appelle bidule. L'entièreté des fichiers sources de bidule se situe dans le dossier /usr/share/bidule/, sur mon serveur.
Et tout mes clients, dans leurs dossiers utilisateurs, ont leurs images, leurs fichiers spécifiques, et un fichier index.php qui se résume à include( 'bidule.php' ).
Le gros avantage, c'est que quand je fais une mise à jour de bidule, elle est intégralement répercutée chez tous les clients, pareil pour les corrections de bugs, etc...

Mais dans ce cas là, pourquoi faire un FTP ? Autant tout faire via SSH ...

Ca, j'ai pas dit le contraire. Personnellement, je n'utilise plus du tout FTP. Je mets en ligne mes sites via svn/mercurial, et ça suffit amplement.
FTP est pratique pour les petits changements rapides quand on a est pas sur sa machine de dev, et encore, c'est tellement plus vite fait d'installer un client ssh.

Tu peux utiliser filezilla pour le FTP, et le SSH ;)

Tu peux utiliser une connexion Mysql à distance qui vérifie si la clé du cms fournie figure dans ta table 'cms_vendus'.

eh eh oui, dans le même esprit, tu peux, à l'aide d'un hash MD5, crypter l'url de ton site et faire la vérif qui va bien... mais bon, après, un mec doué pourra toujours contourner le soucis :)

Bah même pas besoin d'être doué pour vos deux propositions, suffit de remplacer "==" par "!=", et 'est finit -_-