J'ai été mandaté pour développer une intégration à l'une des applications de mon employeur vers un système externe développé par notre client. Spécification de notre client pour l'intégration qui présente des défauts flagrants liés à la sécurité. Les failles permettraient à un utilisateur non autorisé d'accéder au système pour afficher des données restreintes.
J'ai souligné les failles et leurs risques potentiels pour la sécurité si elles sont implémentées comme prévu et fourni une alternative sans la faille, mais (en bref), le client m'a dit de "faire comme nous l'avions spécifié".
Un programmeur a-t-il une responsabilité éthique de NE PAS implémenter du code avec des risques de sécurité connus? À quel moment les exigences d'un client l'emportent-elles sur la responsabilité éthique que nous avons en tant que développeurs de logiciels de créer des applications sécurisées?
la source
Réponses:
Je pense que vous avez fait votre part en soulignant le problème et en suggérant une alternative. S'ils insistent pour que vous fassiez des choses qui les exposent à un certain niveau de risque, vous devez vous assurer d'avoir une trace papier (et des copies de sauvegarde) montrant qu'ils l'ont explicitement demandé, connaissant les risques encourus. Si vous êtes vraimentinquiets, vous pouvez leur dire que vous feriez avec plaisir ce qu'ils veulent, s'ils signent d'abord une sorte de document juridique / avis de non-responsabilité dans lequel ils reconnaissent les risques associés à ce qu'ils vous ont demandé de faire (et bien sûr, demandez à un avocat rédiger un tel document). Personnellement, je ne connais aucun précédent pour un tel document pour cette situation, mais je suis sûr que vous pourriez trouver un avocat pour vous aider. Si votre entreprise a un service juridique, il pourrait s'agir d'une activité avec laquelle il pourrait y avoir une responsabilité civile. Et bien sûr, si c'est si grave, vous devriez également en discuter avec votre manager.
Je pense que la seule situation où il pourrait être OK de simplement refuser de faire le travail serait si c'est un logiciel pour un système où la faille qui vous inquiète pourrait conduire à la compromission du système de telle sorte qu'elle pourrait résulter dans la mort très probable / blessures graves ou une sorte de perte de propriété catastrophique.
la source