jQuery
En savoir plus
Adobe Flex & Flash
En savoir plus
ASP.NET
En savoir plus

Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !
Offre d'emploi : Développeur Web PHP/Drupal (H/F)
| Page 1 | |||
| Auteur | Message | ||
|---|---|---|---|
| 1 visiteur sur ce sujet (1 Anonyme) | |||
| Page 1 | |||
metalking
|
# Posté le 28/06/2011 à 17:45:32 | ||
Knowledge is Power![]()
Ville : Bulle |
Bonjour,
Je suis actuellement en train de développer un CMS, à la base open-source, mais pour lequel j'aimerais fournir des plugins propriétaires et payants, un peu à l'image de CKEditor par exemple, qui fournit un script gratuit, mais dont on peut étendre les capacités avec le plugin payant CKFinder. Après quelques fouilles sur le web, je suis tombé sur quelques obfuscators qui visent à rendre le code illisible et difficilement modifiable, mais qui ne constituent pas une protection contre l'utilisation illégale du code. Je me demande donc comment implémenter un système qui protègerait efficacement mon code d'une utilisation non autorisée. Des idées? Merci par avance!
Mon problème actuel sur le forum PHP (système de license pour un script php) beebCMS : mon projet de CMS open-source UniVoc - Apprendre son vocabulaire n'a jamais été si facile. Présentation du site UniVoc Mes photos sur Flickr |
||
| Publicité | # Posté le 28/06/2011 à 17:45:32 | ||
|
|
|||
Martin7738
|
# Posté le 28/06/2011 à 20:07:20 | ||
|
Ville : Serris |
Tu peux inclure les fichiers qui sont sur tes serveurs ?
![]() |
||
metalking
|
# Posté le 28/06/2011 à 20:14:57 | ||
Knowledge is Power![]()
Ville : Bulle |
Hmm éventuellement, mais je vois deux problèmes :
- Le serveur sur lequel tourne mon CMS n'a peut être pas activé allow_url_fopen (ou allow_url_include), ce qui empêcherait de faire un include sur une url. - Si mon serveur est down pour une raison ou pour une autre, le script ne fonctionne plus du tout. Dans l'idéal j'aimerais que le script fonctionne par défaut quand mon serveur est down.
Édité
le 28/06/2011 à 20:19:13
par metalking
Mon problème actuel sur le forum PHP (système de license pour un script php) beebCMS : mon projet de CMS open-source UniVoc - Apprendre son vocabulaire n'a jamais été si facile. Présentation du site UniVoc Mes photos sur Flickr |
||
Ziteak
|
# Posté le 29/06/2011 à 01:22:19 | ||
![]()
Ville : Argeles sur mer |
Salut, le problème c'est que pour exécuter le code il faut qu'il sois en clair. Il n'y a pas vraiment de système efficace, tout ce que tu peu faire c'est préciser qu'il s'agit d'un code source sous licence propriétaire et que toute utilisation illégal du code est interdite. La seule façon pour empêcher l'utilisation illégal est de ne pas donner le code, or tu est obligé de le donner. La seule solution reste celle de Martin7738 mais qui nécessiterai une infrastructure dédiée.
![]() |
||
Christele
|
# Posté le 29/06/2011 à 01:54:50 | ||
![]()
|
Bonjour,
Juste te dire qu'il n' est pas besoins d'étre hackeur de haut niveau pour debuguer a la volée l'exécution d'un code. Par ailleur, a moins d'avoir inventé un concepte révolutionnaire, du php ça ne vaut pas un commerce ! Avis purement personnel, je te l'accordes
|
||
metalking
|
# Posté le 29/06/2011 à 08:21:05 | ||
Knowledge is Power![]()
Ville : Bulle |
Ok merci pour ces avis! C'est vrai que c'est un peu critique à faire étant donné que c'est un langage interprété..
Sinon j'ai eu une idée pendant la nuit, dites-moi ce que vous en pensez : Lorsqu'une personne achète mon script, je lui fournis : - un fichier php qui est passé par un obfuscator (résultat différent pour chaque client) et qui sert à récupérer la license sur mon serveur - un fichier encrypté avec une clé qui est en fait la license - un serial qui me servira à valider la personne et le nom de domaine Donc le type fait un include du premier fichier. Ce fichier, assez illisible, va faire appel à mon serveur avec le serial, je vais donc vérifier que le type a bien acheté le script, et que la requête vient du nom de domaine correspondant. Ici je pensais ajouter encore un piège (à définir) pour que si le type essaie de faire la requête lui-même pour récupérer la clé de décryption, je lui autorise pas l'utilisation du script. Si tout est en ordre, je lui fournis la license qui permettra de décrypter le second fichier (il faudrait qu'il soit stocké dans la mémoire après décryptage et non sur le serveur histoire que le type ne puisse pas en apprécier le contenu). Finalement le fichier décrypté est exécuté via eval(). L'idée c'est que le type ne doit jamais mettre la main sur la clé de décryption, car la logique du script est dans le fichier encrypté. OK ce n'est pas 100% fiable, mais ça pourrait en décourager certains non? Concernant eval(), vous pensez que c'est un risque niveau sécurité? Qu'en pensez-vous?
Édité
le 29/06/2011 à 10:41:09
par metalking
Mon problème actuel sur le forum PHP (système de license pour un script php) beebCMS : mon projet de CMS open-source UniVoc - Apprendre son vocabulaire n'a jamais été si facile. Présentation du site UniVoc Mes photos sur Flickr |
||
Ziteak
|
# Posté le 29/06/2011 à 12:51:26 | ||
![]()
Ville : Argeles sur mer |
Salut,
La seule "sécurité" efficace dans ton système c'est l'obfuscator. Passer ça c'est très simple de trouver le code. De plus un tel système, pour ne pas que le code sois disponible, il faudrait faire un appel sur ton serveur a chaque chargement du script, ce qui serai très lourd pour ton serveur. ![]() |
||
Christele
|
# Posté le 29/06/2011 à 12:52:13 | ||
![]()
|
Oui alors si en plus tu ne comprends rien a la logique serveur / client,
tu n'as aucune chance de progresser ! Dans quelle mmoire tu charge cela tu semble oublier que le visiteur de ton "client"va appeler un PHP sur le serveur du client. Alors il te faut juste lui laisser le modul chez toi prenons un exemple: La recherche sur un site, je ne connais pas les moteurs de google mais il me rempli mes pages dans mon style ... a aucun moment je n'ais accés au code Va sur un des sites que je géres, cherches par exemple karpov http://www.chess-theory.com/ctw_recherche.php C 'est sans doute la bonne piste pour toi ! |
||
Ziteak
|
# Posté le 29/06/2011 à 12:55:49 | ||
![]()
Ville : Argeles sur mer |
Par "client" je pense qu'il voulai parler de la personne qui acheté le plugin, et donc l'administrateur du site qui a donc accès au code.
Mais pour compléter la remarque de lavarenne, en php il est impossible de charger le code en mémoire, il doit FORCEMENT être en claire a un moment ou a un autre, et l'utilisation d'un système de chiffrement serai très superflue puisque l'interception de la clé de déchiffrement serai extrêmement simple. ![]() |
||
Christele
|
# Posté le 29/06/2011 à 14:11:15 | ||
![]()
|
Citation : Ziteak
Mais pour compléter la remarque de lavarenne, en php il est impossible de charger le code en mémoire, il doit FORCEMENT être en claire a un moment ou a un autre, et l'utilisation d'un système de chiffrement serai très superflue puisque l'interception de la clé de déchiffrement serai extrêmement simple. Reste tout de même si tu es trés bon, tu peux développer ton plugin en C++ puis le compiler sous forme de DLL Il sera alors sur le serveur de son client, qui y fera appel comme par exemple TOUT PDO qui est sous cette forme.
|
||
metalking
|
# Posté le 30/06/2011 à 11:48:16 | ||
Knowledge is Power![]()
Ville : Bulle |
Merci pour vous réponses.
Je veux pas développer un pugin en C++ car tout le monde n'a pas la possibilité de modifier sa config serveur. Je veux que ce soit utilisable sur la majorité des serveurs. Mais pour ce qui est du code en mémoire, tu sembles oublier que je peux encrypter le code (je pensais à XOR ou mieux si Mcrypt est dispo) avec une clé secrète, puis faire un eval() sur le code décrypté, du coup le code en clair n'est stocké nulle part à part dans la ram du serveur.. si je me trompe pas. Mais tu as raison c'est lourd pour le serveur s'il doit à chaque fois le décrypter. Pas une solution viable à long terme. Des autres idées? Sinon Ziteak a un peu mieux compris mon problème, en effet le "client" est la personne qui a acheté mon script et qui utilise mon CMS en tant que développeur, pas le visiteur du site (lui ne verra jamais mon code)! Voila !
Édité
le 30/06/2011 à 11:50:46
par metalking
Mon problème actuel sur le forum PHP (système de license pour un script php) beebCMS : mon projet de CMS open-source UniVoc - Apprendre son vocabulaire n'a jamais été si facile. Présentation du site UniVoc Mes photos sur Flickr |
||
Christele
|
# Posté le 30/06/2011 à 21:25:24 | ||
![]()
|
Oui j'ais compris cela aussi,
juste je t'ais analysé, (enfin essayé) le parcour entre son client (visiteur de son site) il ne sait même pas que PDO est la et que ton client a toi aurait implenté ta DLL C' était pas tout a fait idiot, je crois.Et tout hébergeur pourrait sur les sites ajouter une dll testée ! Mais pas grave, ton choix semble pas mal
|
||
metalking
|
# Posté le 02/07/2011 à 12:01:35 | ||
Knowledge is Power![]()
Ville : Bulle |
Il y a toujours une question en suspens :
Est-ce que l'utilisation de eval() dans ce contexte est dangereuse? Et puis est-ce que ce ne sera pas un peu gourmand en bande-passante et/ou ressources de faire appel à mon serveur à chaque fois pour obtenir la clé de déchiffrement et de décrypter le code à exécuter? Merci pour vos réponses!
Édité
le 02/07/2011 à 12:06:33
par metalking
Mon problème actuel sur le forum PHP (système de license pour un script php) beebCMS : mon projet de CMS open-source UniVoc - Apprendre son vocabulaire n'a jamais été si facile. Présentation du site UniVoc Mes photos sur Flickr |
||
Christele
|
# Posté le 03/07/2011 à 12:08:16 | ||
![]()
|
Bon je reviens aprés réflexion ...
En fait si tu es pret a investir 250 Euros il existe un systéme PRO de développement qui te donne un résultat complétement crypté ! http://shop.zend.com/fr/studio-server-offer.html En fait 1) il faudrait que tu développes tes modules 2) tu vends ton module a un client ton_prix ![]() 3) toi avant de le compiler avec ta clé, tu mets dans ton PHP Code : PHP
Édité
le 03/07/2011 à 12:09:05
par Christele
|
||
Retour au forum "PHP" ou à la liste des forums
