Discussion:
Cacher un bout de code aux autres developpeurs
(trop ancien pour répondre)
Fjordur
2007-03-23 07:32:32 UTC
Permalink
Bonjour,
je débute, j'espère que je suis au bon endroit.

Ma société lance un projet Typo3 / PHP que nous allons faire réaliser
par une SSII. Il y a une petite partie du code que nous allons écrire
nous mêmes car elle correspond à notre savoir-faire spécifique, et elle
est confidentielle. Nous aimerions que la SSII ne puisse pas accéder à
ce code, bien qu'elle va maîtriser le serveur.

Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé? Autres moyens?

Merci de vos indications
--
Fjordur
Thief13
2007-03-23 10:31:42 UTC
Permalink
Post by Fjordur
Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé? Autres moyens?
Merci de vos indications
Salut,

C'est possible, de nombreuse solution permettent de crypter php (phtml
encoder, Zend Guard...)

Pour ma part, j'ai une grande préférence pour Zend Guard, car le code
crypté est plus performant apres qu'avant, grace à Zend optimizer coté
serveur.

Pour PHTML encodeur, la solution n'est pas tres chère (une centaine
d'euro), mais super chiante à mettre en place (je l'avais acheté, et je
n'ais jamais réussi à faire tourner un script, ça m'a vite gavé)

Pour Zend Guard, la solution bien plus onéreuse: 1000 euro par ans ! les
script que tu as déjà crypté marche toujours au dela de la licence, mais
tu ne peut plus rien crypter une fois la licence révoqué. à noter, une
promotion interesante : si tu achete ta première anné de zend guard avec
Zend developement environement, ça te coute dans les 800 euro (à peut
pres le prix d'une licence de dream, alor que Zend developement
environement est vraiment géniale pour dev en PHP)

L'encodage est facile, et rapide, à travers une interface graphique assé
simple. tu peut choisir la version de php (4.xx ou 5.xx), la puissance
du cryptage, si tu veux permettre aux fichier crypté de fonctionner avec
des fichiers non crypter ou pas, le type de balysage de php (<? ?> ou
<?php ?>, personnelement, par contre, j'ai eu des probleme sur un
fichier qui utilisait des balises <?=$variable ?>), et plein d'autre
option sympa

Par contre, pour que les script tournent coté serveur, il faut installer
Zend optimizer, qui est gratuit, sur le serveur. il permet à php
d'interpréter les fichier encodé.

Zend optimizer peut aussi marcher sur des hebergement mutualisé ou tu
n'as pas d'acces root qui te permettrait de l'installer. Personelement,
je l'utilise chez 1and1, demandez moi si la procédure interesse quelqu'un.
Thierry
2007-03-23 10:31:42 UTC
Permalink
Post by Fjordur
Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé?
Oui : il a le Zend Encoder, entre autres.
L'autre possibilité serait de faire une extension de votre savoir-faire
specifique auquels les devs. de la SSI accederont via des fonctions. A mon
avis c'est la solution la plus elegante.
Fjordur
2007-03-23 14:32:24 UTC
Permalink
Post by Thierry
Post by Fjordur
Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé?
Oui : il a le Zend Encoder, entre autres.
L'autre possibilité serait de faire une extension de votre savoir-faire
specifique auquels les devs. de la SSI accederont via des fonctions. A mon
avis c'est la solution la plus elegante.
C'est assez l'idée que j'ai. Peux-tu m'expliquer un peu plus ce que tu
veux dire par "extension", concrètement (je ne suis pas familier du
vocabulaire PHP)?
--
Fjordur
Thierry
2007-03-23 16:44:44 UTC
Permalink
Post by Fjordur
C'est assez l'idée que j'ai. Peux-tu m'expliquer un peu plus ce que tu
veux dire par "extension", concrètement (je ne suis pas familier du
vocabulaire PHP)?
Voir le message de slambert.
Cependant l'extension a le desavantage de pouvoir être copiée et donc
reutilisée a distance. A moins qu'elle implemente elle même un systeme de
licence. L'avantage d'utiliser un encoder PHP est qu'il peux gerer cela lui
même (pour Zend en tout cas). Ton PHP compilé ne sera utilisable que si il y
a la fichier licence qui va bien sur le serveur.
slambert
2007-03-23 10:31:43 UTC
Permalink
Post by Fjordur
Ma société lance un projet Typo3 / PHP que nous allons faire réaliser
par une SSII. Il y a une petite partie du code que nous allons écrire
nous mêmes car elle correspond à notre savoir-faire spécifique, et elle
est confidentielle. Nous aimerions que la SSII ne puisse pas accéder à
ce code, bien qu'elle va maîtriser le serveur.
Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé? Autres moyens?
Merci de vos indications
Une extension PHP codée en C, compilée ? À laquelle vous pourrez faire appel
par une instruction nouvelle accessible directement depuis votre code PHP.

Cela sous-entend d'avoir la main sur le moteur PHP de votre serveur.

Rgds,

SL
Bruno Desthuilliers
2007-03-23 14:32:24 UTC
Permalink
Post by slambert
Post by Fjordur
Ma société lance un projet Typo3 / PHP que nous allons faire réaliser
par une SSII. Il y a une petite partie du code que nous allons écrire
nous mêmes car elle correspond à notre savoir-faire spécifique, et elle
est confidentielle. Nous aimerions que la SSII ne puisse pas accéder à
ce code, bien qu'elle va maîtriser le serveur.
Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé? Autres moyens?
Merci de vos indications
Une extension PHP codée en C, compilée ?
Depuis quand la compilation est-elle une protection contre l'ingénierie
inverse ?
Thierry
2007-03-23 16:44:44 UTC
Permalink
Post by Bruno Desthuilliers
Post by slambert
Une extension PHP codée en C, compilée ?
Depuis quand la compilation est-elle une protection contre l'ingénierie
inverse ?
Personne ne dit le contraire. Là on parle de "cacher" le code.
slambert
2007-03-23 16:44:44 UTC
Permalink
Post by Bruno Desthuilliers
Post by slambert
Post by Fjordur
Peut-on coder une fonction dans un
langage compilé?
....
Post by Bruno Desthuilliers
Post by slambert
Une extension PHP codée en C, compilée ?
.......
Post by Bruno Desthuilliers
Depuis quand la compilation est-elle une protection contre l'ingénierie
inverse ?
Ce point est présent dans toutes les technologies.

Je ne faisais que répondre à la question....

Sinon, il faut mettre le code AILLEURS, et faire des appel distant. Style un
serveur soap quelque part, qui répond aux demandes exclusives du serveur de
la SSII.

Stef
Denis Beauregard
2007-03-23 17:52:06 UTC
Permalink
Le 23 Mar 2007 14:32:24 GMT, Bruno Desthuilliers
Post by Bruno Desthuilliers
Post by slambert
Post by Fjordur
Ma société lance un projet Typo3 / PHP que nous allons faire réaliser
par une SSII. Il y a une petite partie du code que nous allons écrire
nous mêmes car elle correspond à notre savoir-faire spécifique, et elle
est confidentielle. Nous aimerions que la SSII ne puisse pas accéder à
ce code, bien qu'elle va maîtriser le serveur.
Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé? Autres moyens?
Merci de vos indications
Une extension PHP codée en C, compilée ?
Depuis quand la compilation est-elle une protection contre l'ingénierie
inverse ?
Cela dépend beaucoup de la grosseur de la partie protégée. Si c'est
court, ce sera facile de décompiler. Si c'est assez long et complexe,
on arrivera peut-être à trouver les énoncés en C, mais peut-être pas à
comprendre ce qu'ils font ni à modifier le code (qui est un des buts
de l'ingéniérie inverse).

De toutes façons, même sans crypter, il est assez facile de faire du
code nébuleux, mal documenté (volontairement dans ce cas-ci), etc.
Beaucoup le font involontairement, simplement parce qu'ils ne
documentent rien à mesure qu'ils écrivent leur code. C'est ce qu'on
appelle du Write-Only ;-)


Denis
Thief13
2007-03-23 23:13:23 UTC
Permalink
Post by Bruno Desthuilliers
Post by slambert
Post by Fjordur
Ma société lance un projet Typo3 / PHP que nous allons faire réaliser
par une SSII. Il y a une petite partie du code que nous allons écrire
nous mêmes car elle correspond à notre savoir-faire spécifique, et elle
est confidentielle. Nous aimerions que la SSII ne puisse pas accéder à
ce code, bien qu'elle va maîtriser le serveur.
Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé? Autres moyens?
Merci de vos indications
Une extension PHP codée en C, compilée ?
Depuis quand la compilation est-elle une protection contre l'ingénierie
inverse ?
C'est toujour ça de gagné, aucune protection est infaillible, mais ça
rend la tache plus dificile. en plus, il y a des tecnique de
programmation, et des compilateur spéciaux pour rendre encore plus
dificile l'ingénierie inverse...
thierry
2007-03-23 10:31:43 UTC
Permalink
Post by Fjordur
Bonjour,
bonjour,

à part
http://www.zend.com/products/zend_guard

je ne vois pas
Bruno Desthuilliers
2007-03-23 17:34:56 UTC
Permalink
Post by Fjordur
Bonjour,
je débute, j'espère que je suis au bon endroit.
Ma société lance un projet Typo3 / PHP que nous allons faire réaliser
par une SSII. Il y a une petite partie du code que nous allons écrire
nous mêmes car elle correspond à notre savoir-faire spécifique, et elle
est confidentielle. Nous aimerions que la SSII ne puisse pas accéder à
ce code, bien qu'elle va maîtriser le serveur.
Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé? Autres moyens?
Merci de vos indications
Techniquement parlant, le seul moyen à peu près fiable de protéger un
code est de ne pas le distribuer. Donc, dans ton cas, d'en faire un
service web hébergé sur un autre serveur (auquel la SSII n'a pas accès).
Le plus simple est probablement d'utiliser une simple API REST, et un
format JSON ou CSV pour les données retournées par le service web. Bien
plus simple à mettre en oeuvre que SOAP, XML-RPC et autres usines à gaz.

Mes deux centimes...
Paul
2007-04-13 09:16:42 UTC
Permalink
à priori un appel d'un code venant d'un autre serveur
require("http://www.site.com/source.php");



"Fjordur" <***@invalid.invalid> a écrit dans le message de news:
46036f58$0$21494$***@news.free.fr...

e. Nous aimerions que la SSII ne puisse pas accéder à
Post by Fjordur
ce code, bien qu'elle va maîtriser le serveur.
Est-ce possible? comment faire? Peut-on coder une fonction dans un
langage compilé? Autres moyens?
Continuer la lecture sur narkive:
Loading...