Devrais-je inclure une méthode selfdestruct à mes applications?

39

J'ai récemment eu une expérience négative, client échappé de la facture, mais mon intermédiaire a déjà téléchargé notre logiciel et notre conception sur le serveur du client. Le client s'est avéré être un criminel connu et, bien sûr, il a changé tous les mots de passe possibles du serveur.

Cependant, je peux toujours accéder au panneau d'administration du CMS. Malheureusement, il s'avère que mon logiciel est très sécurisé. J'ai essayé d'injecter du code SQL, de simuler le téléchargement d'images, etc. Cependant, je ne peux pas pirater mon propre logiciel. En tout cas, je me prépare à poursuivre cette personne en justice. le problème .. Je pense juste maintenant, qu'il devrait peut-être y avoir une méthode d'autodestruction dorsale. Donc, si des cas similaires se produisent, j'ai l'option de tuer le logiciel.

Ma propre idée est de cacher une fonction dans les fichiers core. Encodez-le avec base64, pour que ce ne soit pas évident. Donc, quelque chose comme ça:

eval(base64_decode('ZWNobyAnSGVsbG8gd29ybGQhJzs=')); // echo 'Hello world!';

Et fondamentalement, créez un petit script, qui prend tous les fichiers du logiciel, chmod pour être sûr, puis les supprime.
Mes nouvelles versions du CMS ont toutes des gestionnaires de fichiers que je pourrais utiliser pour faciliter le piratage . Mais que se passe-t-il si l'accès au panneau d'administration est limité?

Pour être très clair , cela ne concerne que les logiciels en cours de développement, sur mon serveur personnel ou sur le serveur du client (la dernière partie étant éthiquement douteuse.) Donc, si mon client doit voler mon logiciel, cela ne sera pas inclus dans une publicité. -Logiciel.
Et pour être encore plus clair , nous parlons de ces rares emplois indépendants. Je pense que c'est assez logique, que le travail contractuel n'ait pas besoin de telles méthodes. Nous parlons donc de ces clients jumprisk, uniquement en mode développement - lorsque le projet est prêt, il est évident qu’il s’agirait là d’une porte dérobée très peu éthique dans votre logiciel.

  1. Ethiquement, est-ce une bonne idée? (Gardant à l'esprit que je vais évidemment l'enlever, quand le projet a été à 100% et que tout est payé)
  2. Avez-vous déjà eu à pirater votre propre logiciel, à cause de problèmes similaires avec le ou les clients?
  3. Des recommandations sur cette idée, code et méthode sage?
  4. Quels peuvent être les inconvénients ou répercussions possibles des scripts auto-destructifs?

Ma conclusion sur ce

Est un peu triste, que toutes les réponses étaient ciblées sur les cas contractés. C'était vraiment ma faute, parce que je ne l'avais pas dit plus clairement dans ma question ... je pensais juste que c'était assez clair, qu'il n'y avait pas de raison de mettre l'interrupteur antidémarrage ... quand vous êtes protégé par le contrat.
Toutefois, si vous effectuez un travail sous contrat .., cela doit être indiqué dans le contrat - cela le rend légal, même à l'intérieur du serveur du client. Cependant, avoir des commutateurs de neutralisation à l'intérieur de mon propre serveur personnel est vraiment une affaire commerciale (c'est ce que je voulais vraiment savoir.)

J'ai décidé de faire le script kill-switch pour mon CMS. Principalement parce que cela semble un défi intéressant. Mais aussi, que je pourrais l'utiliser pour mes travaux non contractés où le client est l'ami d'un ami d'un ami .. Je n'utiliserai probablement pas cela sur le serveur du client, mais..pour les cas où le client ou certains les intermédiaires ont accès à mon serveur .. Et mon logiciel est volé ou "déplacé à mon insu", alors je ne suis pas payé et ils coupent l'accès au logiciel.

J'ai lu beaucoup de sujets ici, où ils recommandent d'envoyer un avertissement, puis d'enlever la page. Eh bien, j’y ai vu un problème, comme lorsque j’ai affaire à une personne… qui va simplement le copier ailleurs (peut-être le renommer et le vendre) et me dire que cela a été supprimé. Et aussi, je ne voudrais pas "désactiver le site", mais le supprimer. Cependant, je suppose qu’il est toujours illégal d’accéder au serveur de mes clients et de le supprimer. Ou du moins, accédez-y via le backend et non depuis le FTP. Pour cela, je remercie tous ceux qui ont répondu.

Kalle H. Väravas
la source
26
Vos efforts seraient mieux dépensés en faisant preuve de diligence raisonnable envers vos clients!
Steven A. Lowe le
14
Ne pas laisser une faille de sécurité connue mais délibérée dans votre code n’est pas seulement peu professionnel, mais doit vous exposer au danger juridique.
Kevin D
2
les portes arrière et les bombes ne font probablement pas partie des spécifications du produit; En fonction des lois sur la responsabilité et des contrats de votre pays / État, cela peut constituer une rupture de contrat
Steven A. Lowe le
11
Je vois cela et pense immédiatement, Peut - être que j'ai besoin de plus tard .
Mason Wheeler le
3
@ KalleH.Väravas Freeland work! = Travailler sans contrat. Cela signifie "quelqu'un qui est indépendant et qui n'est pas engagé envers un employeur en particulier à long terme". Faire du travail sans contrat est presque toujours considéré comme une très mauvaise idée, pour la raison exacte pour laquelle vous posez cette question (le client s'en va sans payer le travail)
thedaian

Réponses:

38

Je ne suis pas avocat. On dirait que vous en avez déjà un dans le but de poursuivre votre client; pendant que vous l'avez sur mandat, je vous recommanderais de demander son avis à ce sujet.

Il y a d'autres questions sur ce site qui traitent des "kill interrupteurs" et d'autres moyens de désactiver les logiciels pour lesquels le développeur n'a pas reçu de compensation. Il est généralement considéré comme une mauvaise idée de créer simplement un logiciel "clé en main" (où vous allez le développer puis transférer tous les droits au client), sans que le contrat n’ait stipulé cette possibilité.

Tout d’abord, si votre contrat n’indique pas expressément que vous pouvez désactiver le logiciel en cas de non-paiement, ou que le client n’a aucun droit sur le logiciel tant que le paiement n’a pas été intégralement reçu, vous ne pouvez basculer aucun "kill switch" sans être en rupture de contrat. En l'absence de mots contraires, "la possession est neuf-dixièmes de la loi", donc c'est son logiciel une fois qu'il en a la possession, et le détruire reviendrait à dynamiter un nouvel immeuble de bureaux que vous auriez construit pour lui s'il ne le possédait pas. ne payez pas pour cela.

Le deuxième point suit; tout contrat que vous proposez à un client devrait comporter une clause portant la mention suivante: "Cession de propriété intellectuelle moyennant exécution du contrat" . Cela signifie que même si vous lui avez donné une copie du logiciel à utiliser, il ne la possède pas jusqu'à ce qu'il vous paye intégralement. Cela DEVRAIT vous donner le droit de désactiver sa copie du logiciel pour n’importe quelle raison, jusqu’à ce que le paiement intégral soit reçu, car il vous appartient et vous pouvez faire ce que vous voulez. Maintenant, il a violé le contrat et vous ne l'avez pas fait. L'affaire est donc BEAUCOUP plus facile à présenter pour votre avocat. Entre-temps, votre client ne tire aucun avantage de ses biens mal acquis.

L’analogie avec un entrepreneur en bâtiment est valable: une fois qu’un bâtiment en construction peut être sécurisé contre une entrée illégale, c’est le cas, et l’entrepreneur conservera généralement toutes les copies de toutes les clés des lieux jusqu’à ce que les travaux soient terminés et signés, et paiement reçu en totalité. Même après la remise des clés, si le paiement échoue, il peut attacher un privilège sur le bien et le récupérer à la limite. La même chose est vraie ici; vous pouvez donner au client une clé pour accéder au logiciel, mais vous détenez la clé "principale", et il ne reçoit aucun accès administratif tant que vous n'avez pas été intégralement payé. S'il peut entrer maintenant et ne vous paie pas, vous pouvez simplement "changer les serrures" et le verrouiller du logiciel.

Cependant, vous avez donné à votre client la clé "principale" du logiciel, et il est parti et a changé tous les verrous afin que vous ne puissiez plus entrer. Ce n'est pas ainsi que cela devrait fonctionner. Vous pouvez toujours réclamer des dommages-intérêts, mais dans l’intervalle, votre client malhonnête peut utiliser le logiciel, le copier ailleurs (c’est un problème qui ne peut pas arriver à un entrepreneur; s’il récupère son immeuble, il n’a pas à s’inquiéter avez exactement fait une copie gratuite sur un autre lot), etc. etc. En gros, votre seul recours consiste à exiger le paiement intégral, car vous ne pouvez pas garantir que vous avez récupéré toutes les copies du logiciel. Vous ne seriez probablement pas heureux de récupérer votre logiciel, même si vous pouviez garantir qu'il n'en aurait pas d'autres copies; c'est probablement un travail sur mesure que vous ne pouvez pas vous contenter de vendre à quelqu'un d'autre.

Comprenez que quels que soient vos droits sur le logiciel, ses données lui appartiennent. Vous ne pouvez pas le toucher. Vous pouvez lui interdire l'accès au logiciel que vous avez construit, mais si vous détruisez ses données, cela équivaut à brûler ses biens après avoir transféré l'immeuble que vous avez construit pour lequel il n'a pas payé. Vous n’avez absolument aucun droit sur ces données et vous devez les laisser intactes sur son ordinateur ou, si vous ne pouvez pas accéder aux données de manière raisonnable sans votre logiciel, vous devez les retirer de l’enchevêtrement avec votre logiciel et les transmettre. lui dans un format utilisable (comme une base de données humaine, des copies imprimées ou électroniques).

KeithS
la source
3
Réponse impressionnante! Merci. Je suis tout à fait d’accord avec vous, sauf que cette question a été posée à l’intention des pigistes. Désolé, je n’ai probablement pas clarifié la question. Je n'utiliserais jamais de telles méthodes avec le travail à contrat, c'est juste du bon sens et la question serait de savoir pourquoi ... puisque je suis légalement couvert de toute façon. Cependant, je parle de quand vous avez un contrat oral avec un gars .. qui veut une voiture .. et que vous la construisez pour lui. Ensuite, il veut le voir pendant que vous le fabriquez et s’en va. Donc, en mode de développement ... ne serait-il pas plus facile d'avoir un kill-switch ... qui coupe le contact?!
Kalle H. Väravas le
11
C'est pourquoi vous ne faites JAMAIS de travail de développement pour quelqu'un qui ne vous emploie pas, impliquant un temps ou des ressources importants, sans contrat écrit. C'est toujours du travail "indépendant", puisque vous vous présentez comme un entrepreneur indépendant, mais le contrat vous permet, à vous et à votre client, de couvrir leurs arrières. Il indique ce que les deux parties fourniront à l'autre (pas seulement le produit et l'argent, mais des ressources telles que les bureaux et les ordinateurs), et ce qui se passera si tout cela ne se produit pas comme convenu.
KeithS
D'accord, j'ai eu ma leçon. En théorie, c’est exact, mais c’était une de ces rares combinaisons de différentes variables. Ami d'un ami qui le voulait pas cher (1000 €), mon CMS personnel avec un design sur mesure. Je pense que c'est plus clair, ce que la communauté des programmeurs ressent à ce sujet. Merci pour votre réponse, elle était toujours davantage axée sur les cas contractés, mais laissait de l'imagination pour les emplois non sous-traités.
Kalle H. Väravas le
Réponse fabuleuse.
Teekin
21

En théorie, vous avez raison. Votre exécution est tout faux.

Vous devez lui fournir des licences d'évaluation qui expirent. Dès le paiement complet, donnez-lui la licence finale "pour toujours". Tout franc et honnête.

Crétins
la source
bien meilleure idée.
Type anonyme
En effet, la première réponse qui ne conteste pas "pourquoi vous ne contractez pas" ou "l'utilisation unlink()est ILLEGALE". En fait, j'aime beaucoup votre idée, je peux cuisiner quelque chose dans CRON.
Kalle H. Väravas
@ Kalle: Personne n'a dit "utiliser unlinkest illégal". Ce que les gens ont essayé de faire comprendre, c’est que les États-Unis, au moins, disposent de lois très larges sur «l’utilisation non autorisée de systèmes informatiques»; selon la loi, c'est un crime pour la plupart d'entre nous de poster des réponses en utilisant des ordinateurs de travail. Sauf si vous avez un contrat vous accordant le droit de le faire, la désactivation à distance d'un logiciel fonctionnant sur un ordinateur que vous ne possédez pas enfreindrait très certainement cette loi. Que le logiciel que vous désactivez ait été volé ou non n'a probablement aucune pertinence lorsque l'accusation est une utilisation non autorisée du système sur lequel il est exécuté.
Dave Sherohman
@ Dave. Je comprends ce que vous voulez dire, mais si vous y réfléchissez. S'il n'y a pas de contrat, les conditions et ce qui ne l'est pas ne sont pas définis. Ensuite, le programme est comme prévu. Donc, si le kill-switch était dans le code quand le logiciel a été déplacé / volé / livré .. puis utiliser ce kill-switch (fonction fondamentalement unlik ()) fait partie du but du logiciel .. J'ai parlé avec mon avocat , et il a fait remarquer que le piratage du logiciel serait illégal (utiliser FileManager pour télécharger un script de liaison, par exemple). Mais si l'interrupteur de suppression est inclus dans le code, en tant que partie du logiciel, il est alors parfaitement légal.
Kalle H. Väravas
19

Non, si vos clients découvraient que vous seriez lynché. Ce n'est pas du tout sécurisé. Quelqu'un, certains trouveront comment le déclencher, puis vous devrez soudainement contacter tous vos clients pour leur en parler et leur expliquer pourquoi ils doivent créer un correctif d'urgence.

Si vous le piratez, vous vous ouvrez également à une procédure pénale. Je suppose que vous avez la preuve que vous êtes toujours propriétaire du site? Que vous avez le droit d'y accéder? Le coût pour son entreprise pourrait être "astronomique"

Il existe des alternatives acceptables. Mettez un filigrane sur le site afin que chaque page affiche un message. Sur paiement, vous pouvez supprimer le filigrane.

Ian
la source
Je vois. Je comprends ton point de vue. Pour mémoire, le kill-switch allait être intégré à un logiciel non commercial, et principalement uniquement à l'intérieur de mon propre serveur ou du moins en mode de développement uniquement. Certains clients exigent que le développement se fasse à l'intérieur de leurs propres serveurs, ce qui me laisse dans une situation de vulnérabilité extrême. J'ai actuellement tous les fichiers crédités, les dessins sont en filigrane, je m'appelle EVERYWHERE - je suis assez confiant, je gagnerai le procès .. Je pense qu'avoir des commutateurs de neutralisation sur mon propre serveur serait toujours une bonne idée, au cas où quelqu'un les vole.
Kalle H. Väravas le
17

Cela semble être une très mauvaise idée qui pourrait vous conduire en prison.

  1. C'est contraire à l'éthique. Le mauvais comportement de votre client ne vous permet pas de pirater son système.
  2. C'est illégal. Cela s'est déjà produit auparavant , avec de mauvais résultats pour les parties en infraction.
  3. C'est inutile. Que feriez-vous avec cette porte dérobée qui ne vous causerait pas de problèmes? Souhaitez-vous faire chanter le client?
  4. C'est bête. Même si vous pouviez le faire sans vous faire prendre, les risques potentiels l'emportent de loin sur les gains éventuels.
Ken Liu
la source
1
Je suis désolé, mais votre réponse manque la partie "POURQUOI". Pourquoi est-ce une mauvaise idée et basée sur ce que je pourrais aller en prison? Pouvez-vous expliquer un peu plus loin?
Kalle H. Väravas le
3
Bien que je sois d’accord avec ce sentiment, @Kalle a raison. S'il vous plaît inclure une raison. -1
Steven Evers le
3
Voulez-vous dire qu'un kill-switch est illégal? Si le contrat stipule que le service sera suspendu en raison de circonstances spécifiées, il ne sera peut-être pas illégal.
FrustratedWithFormsDesigner
Cela dépend des normes juridiques en vigueur dans les pays où vous faites affaire, mais en général, les systèmes juridiques punissent sévèrement les personnes qui prennent les choses en main. Ils veulent vraiment que vous passiez devant le système judiciaire. Dans certaines juridictions, le simple fait d’accéder à un système informatique sans autorisation est un crime punissable par une peine de prison. Vous pouvez soutenir que c'est votre logiciel, mais les tribunaux diront que c'est à eux de décider, pas vous.
Charles E. Grant le
La méthode kill-switch est venue à l’esprit dans le travail freelance. Désolé, j'ai oublié de mentionner cela dans ma question. Je n'utiliserais jamais de telles méthodes sur un travail à contrat. Les questions juridiques qui se posent ici (en Estonie) en sont à leurs balbutiements en ce qui concerne les lois sur le droit d'auteur. Nous avons des lois sur le droit d'auteur similaires, mais pas identiques, comme la Suède et la Finlande. Personnellement, je n’ai jamais eu de problèmes avec des clients auparavant… certains retardent les paiements, etc., mais c’est un voyou qui vole votre logiciel - c’est une nouveauté dans mon livre.
Kalle H. Väravas le
12

S'il vous plaît ne demandez pas aux programmeurs, demandez à un avocat. J'imagine au moins que vous voudriez inclure une clause dans votre contrat stipulant que vous avez le droit de faire ce que votre question envisage de faire. (La clause "préjudice irréparable" de certains contrats ne vous permet-elle pas d'obtenir une ordonnance du tribunal pour fermer le logiciel immédiatement jusqu'à ce que le tribunal ait une chance de résoudre le problème?) Je pense qu'une ordonnance du tribunal serait beaucoup plus sûre pour vous. code bombe (ce qui pourrait être considéré comme criminel, si un tribunal concluait que vous ne possédiez pas le logiciel, il pourrait s'agir d'une destruction de propriété. Aux États-Unis, cela pourrait tomber sous le coup du cryptage numérique du Digital Millennium Act, etc. imaginez obtenir des dommages-intérêts devant un tribunal civil et toujours condamné devant un tribunal pénal).

Les règles varient en fonction du lieu de résidence et d'exploitation de votre client et vous, donc je pense vraiment que vous voudriez un avocat.

psr
la source
Eh bien, le kill-switch était principalement destiné au travail indépendant. Avec un contrat, c'est beaucoup plus facile. Actuellement, le cas est fondamentalement comme ceci: Mon logiciel, à mon insu, a été déplacé de mon serveur et c'est tout. Encore une fois, son cas très clair de vol - donc en termes juridiques, je ne suis pas inquiet. Le kill-switch serait donc principalement sur mon propre serveur, lorsque mon logiciel serait volé. Cependant, je commence à penser que c'est toujours une mauvaise idée. Merci pour votre réponse, je rencontre mon avocat dans quelques jours.
Kalle H. Väravas le
5

Ethiquement, est-ce une bonne idée?

Absolument pas. Cela ne vous rend pas seulement peu professionnel aux yeux de clients honnêtes et honnêtes, mais j'estime que cela nuit également à la profession dans son ensemble. Les ingénieurs en logiciel ont des responsabilités envers leurs clients ou leurs employeurs, notamment en fournissant des logiciels de la plus haute qualité. En cas de différend sur le paiement ou les contrats, il existe des canaux appropriés. Réduire la qualité de vos logiciels n’est pas un canal approprié.

Avez-vous déjà eu à pirater votre propre logiciel, à cause de problèmes similaires avec le ou les clients?

Jamais, même si je n’ai jamais travaillé à contrat ou à la pige. J'ai toujours été employé par une grande entreprise (qui, dans certains cas, travaillait sous contrat). Pour moi, la pensée est impensable. Je préférerais proposer des logiciels pour lesquels je suis fier d’avoir attribué mon nom à un petit pourcentage de clients et être trompés plutôt que de réduire la qualité de mes logiciels ainsi que mes responsabilités éthiques vis-à-vis des utilisateurs du système.

Des recommandations sur cette idée, code et méthode sage?

Ne le fais pas.

Quels peuvent être les inconvénients ou répercussions possibles des scripts auto-destructifs?

Outre les questions éthiques évidentes, je m'inquiéterais des problèmes juridiques. Je ne sais pas si saboter votre propre travail est légal, et même si c'est le cas, utiliser un tel exploit pourrait ne pas l'être.

Thomas Owens
la source
Merci pour votre réponse. J'ai édité ma question de manière absolument claire, à savoir que ceci serait fondamentalement caché à 100% du client. Comme ce sera principalement à l'intérieur de mon propre serveur et uniquement en mode de développement. Donc, quand quelqu'un vole mon logiciel, je peux le tuer. Bien que cela commence à être plus clair, que je devrais utiliser la loi et non la "force".
Kalle H. Väravas le
2
@ KalleH.Väravas Peu importe où il se trouve, mais le fait que vous l'avez écrit pour commencer. On pourrait même soutenir que le placer dans un environnement de développement et non dans un environnement de production est encore pire, car les deux environnements ne sont plus identiques et cela devient simplement une autre variable à prendre en compte lors du développement et du déploiement.
Thomas Owens
3

Il suffit de mettre en place un module de licence avec des licences limitées dans le temps qui désactivent le logiciel à l’expiration. Il s’agit d’une pratique bien connue dans l’industrie du logiciel et vos clients ne doivent pas s’y opposer car vous supprimerez la limitation ultérieurement.

Cela peut également s'avérer utile lorsque vous souhaitez limiter les fonctionnalités et proposer différentes versions de votre produit.

Les commutateurs de neutralisation comportent trop de risques et n'en valent pas la peine.

OliverS
la source
2

Une fonctionnalité secrète d’autodestruction est une idée horrible . Oui, vous serez intelligent et aurez peut-être l’opportunité de le coller à un client horrible à l’avenir, mais sa façon de faire risque de causer plus de problèmes que sa valeur.

  1. Vous ne serez toujours pas payé pour le travail que vous avez accompli. Oui, l'autre personne n'utilisera pas votre code. mais vous subirez toujours le manque de paiement. Vous pensez qu'un criminel décidera de payer la personne qui a déjà fait descendre son site une fois à distance? Ils trouveront un nouveau type pour rendre leur site gratuit.

  2. L'utilisation de la séquence d'autodestruction vous rend responsable de vos propres problèmes juridiques. Selon les juridictions, vous pourriez facilement être perçu comme un piratage / destruction de leurs données (au moment où ils étaient sur le point de payer et disposaient de nombreuses circonstances atténuantes expliquant pourquoi ils ne payaient pas auparavant). Même si vous n'êtes pas reconnu coupable / poursuivi avec succès, vous pouvez toujours payer des frais juridiques considérables et avoir bien plus de problèmes que sa valeur.

  3. Que se passe-t-il si un bon client payant parcourt votre code ultérieurement (ou a un ami CS qui vient de le parcourir pour effectuer un ajustement mineur), voit la fonction avec une partie bizarre de base64, ressemble à ce que ça donne, tente de l'exécuter et supprime accidentellement l'application Web (et le fait pendant que vous êtes en vacances alors ça prend un peu de temps à réparer)? Ou publie-t-il de nombreuses critiques publiques vous déclarant que vous êtes contraire à l'éthique et que vous laissez derrière vous dans votre travail? Bien sûr, vous pouvez le retirer du produit fini une fois le paiement effectué, mais avec VCS, ils peuvent consulter une source plus ancienne ou ne pas vouloir vous connecter à leur serveur une fois le paiement effectué (ce serait une conversation difficile; oui, j’ai besoin d’un compte à nouveau, car je ne pas supprimé la backdoor secrète auto-destruction).

  4. Et si le criminel sauvegardait ses données? Vous supprimez leur serveur Web avec une porte dérobée secrète, le site est déconnecté pendant un jour ou deux pendant qu’ils (ou un ami) trouvent la fonction de porte dérobée de la fonction incriminée et sa mise en ligne.

À l'avenir, demandez aux gens de signer un simple contrat, de vous payer par étapes et de ne pas laisser le code quitter le serveur de développement et l'ordinateur que vous êtes seul à contrôler jusqu'à ce que vous ayez été payés. (S'ils ont besoin d'être en direct avant la fin du travail, assurez-vous qu'ils ont à peu près payé la fraction de code qui devient en cours d'exécution). S'ils veulent voir le travail en cours de développement, demandez-leur de vous donner quelques adresses IP, qui ouvriront votre pare-feu pour votre serveur de développement (et peut-être avec un CNAME intelligent qui produira l'effetunpaid_work_in_development.example.com). Ne donnez aucune garantie quant à la disponibilité de votre serveur dev, et si vous obtenez beaucoup plus de trafic que nécessaire (par exemple, vous constatez qu'ils redirigent de nombreuses personnes vers votre site), fermez le pare-feu jusqu'à ce que vous payiez. S'ils ont besoin de contribuer du contenu à votre serveur Web, envoyez-les par e-mail avec les suggestions de contenu ou créez-leur un dossier partagé qui ne dispose que des autorisations pour écrire sur le petit sous-ensemble de fichiers (sous contrôle VCS en dehors de Dropbox). peut contribuer de manière significative à (par exemple, les modèles HTML).

dr jimbob
la source
En tenir à un client affreux dans le futur? Cela ressemble à quelque chose que je n'ai ni demandé ni même mentionné. Et si je ne suis pas payé mais qu'il perdra le logiciel, comment votre premier point sera-t-il valide? Il y avait aussi deux points dans ma question, est-ce éthique / légal d'avoir le kill-switch dans mon propre serveur et / ou dans le serveur des clients. Vous n'avez pas mentionné lequel vous vouliez dire. Je suis assez certain que je peux avoir des kill-switches sur mon propre serveur. Ainsi, lorsque quelqu'un le copie, je peux le supprimer à distance. Et je pense que les bons clients ne sont pas pertinents, car le kill-switch n'est pas inclus dans le logiciel. C'est 1 ligne.
Kalle H. Väravas
2

Vous avez posé la mauvaise question. La chose à améliorer et à améliorer n’est pas d’ajouter une sorte de kill-switch distant (en ajoutant une vulnérabilité que vous ou une autre personne pouvez utiliser), mais de résoudre votre problème réel, qui était une mauvaise façon d’organiser le paiement et la livraison. On dirait que vous aviez besoin d'un meilleur système d'entiercement (ou peu importe, un tel concept s'appelle où vous habitez).

Ne perdez pas votre temps sur un kill-switch, déterminez où vous avez tout gâché dans la partie transaction.

anon
la source
-1 Désolé, votre réponse est hors sujet. Bon conseil, peu offensant mais quand même. Je ne recommande pas de faire des jugements car vous ne connaissez pas toute l'histoire ni comment vous faites habituellement.
Kalle H. Väravas
2

Je pense que je mettrais au point un mécanisme de licence. Cela pourrait être basé sur un nombre illimité d'idées commerciales ou maison et pourrait empêcher le logiciel de fonctionner après l'expiration de la licence. Au moment où le système est accepté par le client et que celui-ci a payé, vous pouvez fournir une licence complète qui n’expire pas.

Cette approche doit également être approuvée par un avocat de votre territoire, mais présente l’avantage de ne pas désactiver le logiciel à distance et vous pouvez spécifier qu’il fait partie du système à l’avance. Cependant, il me semble très triste que vous ayez affaire à des personnes qui refusent de payer en premier lieu.

entaille
la source
Je commence à aimer réellement l’idée du logiciel d’essai. Cependant, la deuxième partie est douteuse. Fondamentalement, si l’octroi de licence d’essai ou même de kill-switch fait partie du logiciel, alors c’est parfaitement légal. Dépendant du travail sous contrat ou non, cela devrait être indiqué dans le contrat.
Kalle H. Väravas
2

N'est-ce pas appelé DRM? Tant que vous retirez la "bombe" après avoir reçu un paiement, je ne vois aucun problème juridique avec cela. Assurez-vous simplement que vous disposez d'un correctif pour couvrir votre cul et montrer que vous n'avez pas d'intention malveillante.

Cela me rappelle la disposition relative à la «pilule empoisonnée» contenue dans les statuts de certaines sociétés qui sont activés en cas de prise de contrôle hostile.

En effet, la mentalité exprimée par certaines des autres affiches ici me rappelle pourquoi certains programmeurs se font piétiner tout le temps. Si plus de gens ajoutaient de telles bombes dans leur code, je pense que les programmeurs pourraient être payés plus rapidement ... Je n'aurais absolument aucun problème si c'était la norme. Les gens aiment voler le dur labeur des autres. Période. Et si Apple, et al. peut DRM l'enfer de leurs trucs, alors je pense que les programmeurs indépendants peuvent aussi ...

très insensé
la source
J'adore votre réponse, cela répond mieux à mon argument que d'autres réponses. J'ai vérifié auprès de mon avocat et il m'a dit qu'après cela, aller dans le panneau d'administration et télécharger un script sans lien via le gestionnaire de fichiers était considéré comme du piratage - illégal. Cependant, s’il existe une fonction réelle intégrée au logiciel, alors sa partie appartient au logiciel et a son propre objectif. Cela devrait évidemment être couvert dans le contrat, bien que cette question concerne les travaux non contractuels. Merci pour votre réponse :)
Kalle H. Väravas le
0

Sur une note pratique, le client vérifierait sûrement ses journaux, trouverait la demande de destruction, restaurerait le code à partir d’une sauvegarde, supprimerait le commutateur de neutralisation et le redéployerait.

jah
la source
Certes, cela dépend du client, du logiciel et du serveur. Dans mon cas, le client pouvait à peine changer l'accès FTP. Mais vérifier les journaux est impossible. En outre, ce serveur ne prend pas en charge ce type de journalisation ... ni mon humble CMS ..
Kalle H. Väravas
-2

Les détails de votre question montrent clairement que ce serait une idée absolument horrible. Le premier client à découvrir un tel commutateur d'arrêt (éventuellement après l'avoir utilisé et avoir récupéré après une sauvegarde) le publierait ainsi que le fait que vous l'aviez inclus dans le code que vous lui aviez fourni. Votre réputation serait alors complètement détruite.

Et avant de dire "bien, ils seraient un mauvais payeur, comment vont-ils détruire ma réputation?" Considérez un scénario comme celui-ci: le client est en règle, mais l'un de ses employés prend une copie du code. Ils congédient cet employé, il examine le code, calcule l'interrupteur antidémarrage et l'utilise. Devinez qui est blâmé? (Indice: c'est vous.)

David Schwartz
la source
Je ne suis pas d'accord. C'est en fait une très bonne idée. Si vous lisiez les détails attentivement, vous comprendriez alors que je parle d'emplois non contractuels… où, dans mon cas, le client est discutable. Sa réputation de voyou contre ma tentative de me protéger. Je ne pense pas que cela affectera négativement ma réputation. Votre scénario ressemble à du travail sous contrat. Dans ce cas, j’ai un contrat, pas besoin du kill-switch. Cependant, s'il n'y a pas de contrat, ils ne peuvent pas non plus obtenir la copie du code.
Kalle H. Väravas
S'il n'y a pas de contrat, vous n'avez pas encore contracté le droit d'activer le commutateur d'arrêt sur leur matériel, n'est-ce pas? Mauvaise idée.
David Schwartz
S'il n'y a pas de contrat, il n'y a pas de termes de ce qui fait partie du logiciel. Si le kill-switch fait partie du logiciel, alors oui… du point de vue des programmeurs: est-ce éthique? Cependant, c'est légal. Parce que l'objectif des interrupteurs d'arrêt en tant que partie du script doit être activé à distance dans le seul but de supprimer TOUT. C'est légal, alors pourquoi est-ce une mauvaise idée?
Kalle H. Väravas
1
Donc, vous dites intentionnellement que l'ordinateur de quelqu'un d'autre cesse de fonctionner de la manière dont il le voulait sans sa permission (quand vous savez que si vous lui aviez spécifiquement demandé si vous pouviez le faire, ils diraient «non») est la même légalement comme effectuant une opération sans danger pour laquelle vous n'avez aucune raison de penser que le propriétaire du système s'opposerait à ce que vous le fassiez? J'adorerais vous entendre dire cela à un jury. (Viser et tirer avec une arme sur une personne revient à allumer un interrupteur, non?)
David Schwartz
1
La réponse que vous obtenez est seulement aussi bonne que la question que vous posez. Par exemple, leur avez-vous posé des questions sur le cas dont j'ai parlé dans ma réponse? (Un ancien employé découvre comment activer l'interrupteur de neutralisation.)
David Schwartz