Comment se prémunir contre le vol de code source ?

Bonjour à tous,

Comment pour une startup se prémunir du vol de son code source par des développeurs freelance ou externalisés ?

Cela fait plusieurs mois que je développe un site web déjà bien avancé sous Angular et il est extrêmement complexe, lourd et coûteux en terme d’investissements.

Avec la quantité d’éléments restants, je devrai à un moment ou un autre recruter des personnes pour aider au développement. Il serait alors facile pour une de ses personnes de faire une copie du code source du site. En effet, pour travailler sur la poursuite du développement, je devrai partager le code via gitlab et le développeur devra forcément télécharger le code source sur sa machine.

Si cette personne est mal honnête, elle pourrait faire un fake du site ou tout simplement diffuser le code source à tout va.

On peut bien sûr faire signer un contrat de non concurrence et pleins d’autres clauses restrictives mais dans tous les cas le mal sera fait si la personne ne respecte pas ses engagements, même si on poursuit le coupable avec toutes les procédures, la perte de temps, et le gouffre financier que cela générera ça ne sera pas possible de tenir le coup pour une petite startup.

Il y a aussi la possibilité de découper le projet en petites parties mais c’est un travail énorme et une perte de temps incroyable, car à chaque récupération du développement réalisé, on passe plusieurs jours à corriger et à debeuguer pour que cela fonctionne.

Merci pour votre aide :pray:

Pour rappel angularj comme boostrap responsive sont open sources gratuits etc…

@Jorgi je ne parle pas de la solution mais du code écrit et l’app

Ca dépend de tellement de chose qu’il est impossible de vous répondre de façon efficace. Vous pourriez partager que le code front avec la doc d’une API accessible par ex.

Toutefois ne pensez pas que votre code est unique et qu’il a une réelle valeur. Que votre code soit rendu publique ou non, si une entreprise veut vous copier elle le fera, et surement en mieux car elle capitalisera sur vos erreurs, et au pire aura juste à recruter vos développeurs.

Votre principal soucis est de sortir l’outil, dans 2 ans votre code sera surement obsolète et/ou aura été modifié à plus de 50% donc bon, passez plutôt du temps à réfléchir sur la sortie de l’outil :wink: Vous l’avez dit vous même, il est impossible de se prémunir d’un potentiel vol de code source à partir du moment ou d’autres personnes travaillent sur le projet, et c’est 100% vrai.

En tant qu’initiateur du projet vous êtes par contre le mieux placé pour porter ce projet, et donc l’emmener là où vous souhaitez qu’il aille

2 J'aime

Merci @raz101 pour votre réponse. Vous avez tout à fait raison, le but est de sortir l’outil très rapidement pour le tester et réaliser une preuve de concept. Mais j’avoue quand même que ça me stress de ne pas pouvoir protéger ça à minima.

Pensez-vous qu’il soit possible d’appliquer un code d’accès à certains dossiers de l’architecture du code (components, modules, functions, etc) ?

Merci

Je ne connais pas trop angular, donc on n’est plus de l’ordre de la proposition, mais n’est-il pas possible de séparer ton code (importé via NPM) et d’importer les parties délicates que tu souhaites garder en « minifier » ? Comme c’est le cas de bcp de logiciel dont la licence de la version minifié coute moins cher que la version complète.

Maintenant, si il suffisait d’avoir un bon code pour qu’un projet fonctionne … Honnetement, le risque me semble très faible. C’est un ensemble qui peut créer un concurrent valable, le seul code n’est qu’une infime brique de la réussite global d’un projet. De même qu’un code non maitrisé par un éventuel concurrent n’a pas plus de valeur non plus.

Je comprends néanmoins l’inquiétude.

1 J'aime

Le code écrit est aussi sous licence gpl

Selon moi, tu peux diviser le code en plusieurs librairies. Déjà c’est une bonne pratique de dev (separation of concerns). Ensuite tu peux fournir les librairies déjà compilées pour les parties critiques (avec une expiration en dur dans le code).
En plus, tu pourras réutiliser ces librairies dans d’autres projets (application mobile, logiciel ou un autre projet web). Pour ma part, j’ai fait par exemple une librairie mail, SMS, gestion d’images (compression, thumbnail, watermarks etc…). Celles-ci sont simples mais il est possible de faire de même pour les algos plus complexes.

2 J'aime

Sauf que les librairies c’est bien mais point trop n’en faut pour un site dynamique

Hello, si pas de solution efficace. L’idée est de compliquer la tache quand c’est possible.

1 - Obscurcissement du code
2 - Pkg pour créer un binaire

1 J'aime

Je pense que tu as déjà répondu toi-même à une grande partie de tes questions. Se prémunir contre les développeurs qui vont collaborer sur le projet est quasiment mission impossible.

A ta place j’aurai splitter les codes en plusieurs parties, dont une partie n’est accessible que par toi-même. Dans cette partie tu peux y insérer un appel d’api pour valider des variables ou fonctions ou appeler des callbacks. Le tout avec obfuscator ou d’autre auto-protection