Мне было поручено разработать интеграцию для одного из приложений моего работодателя с внешней системой, разработанной нашим клиентом. Спецификация нашего клиента для интеграции, которая имеет некоторые явные недостатки, связанные с безопасностью. Недостатки позволят несанкционированному доступу пользователя к системе для просмотра ограниченных данных.
Я указал на недостатки и их потенциальные угрозы безопасности, если они будут реализованы в соответствии с планом и предоставлены альтернативы без недостатков, но (вкратце) мне было сказано «делайте это так, как мы указали» клиентом.
Имеет ли программист этическую ответственность НЕ внедрять код с известными угрозами безопасности? В какой момент требования клиента перевешивают этическую ответственность, которую несем мы, разработчики программного обеспечения, за создание безопасных приложений?
источник
Ответы:
Я думаю, что вы внесли свой вклад, указав на проблему и предложив альтернативу. Если они настаивают на том, что вы делаете вещи, которые подвергают их определенному уровню риска, вы должны убедиться, что у вас есть бумажный след (и резервные копии этого), показывающий, что они явно просили об этом, зная риски. Если ты действительнообеспокоены тем, что вы могли бы сказать им, что с удовольствием сделаете то, что они хотят, если они сначала подпишут какой-то юридический документ / заявление об отказе от ответственности, в котором они признают риски, связанные с тем, что они просили вас сделать (и, конечно, нанять адвоката) составить такой документ). Лично я не знаю ни одного прецедента для такого документа для этой ситуации, но я уверен, что вы могли бы найти адвоката, который поможет вам в этом. Если в вашей компании есть юридический отдел, возможно, им стоит заняться этим, если есть вероятность корпоративной ответственности. И, конечно, если это серьезно, вы должны обсудить это и со своим менеджером.
Я думаю, что единственная ситуация, в которой было бы нормально просто отказаться от выполнения работы, была бы, если бы это было программным обеспечением для системы, где недостаток, о котором вы беспокоитесь, может привести к тому, что система будет скомпрометирована таким образом, что это может привести к в очень вероятной гибели людей / серьезной травме или какой-либо катастрофической потере имущества.
источник