Saya telah ditugaskan untuk mengembangkan integrasi ke salah satu aplikasi majikan saya ke sistem eksternal yang dikembangkan oleh klien kami. Spesifikasi klien kami untuk integrasi yang memiliki beberapa kelemahan mencolok terkait keamanan. Kelemahan akan memungkinkan pengguna yang tidak sah mengakses sistem untuk melihat data yang dibatasi.
Saya telah menunjukkan kelemahan dan risiko keamanan potensial mereka jika diterapkan sebagaimana dirancang, dan memberikan alternatif tanpa cacat, tetapi (singkatnya) telah diberitahu "lakukan dengan cara yang kami tentukan" oleh klien.
Apakah seorang programmer memiliki tanggung jawab etis BUKAN untuk mengimplementasikan kode dengan risiko keamanan yang diketahui? Pada titik apa persyaratan klien melebihi tanggung jawab etis yang kita miliki sebagai pengembang perangkat lunak untuk membuat aplikasi yang aman?
sumber
Jawaban:
Saya pikir Anda telah melakukan bagian Anda dengan menunjukkan masalahnya dan menyarankan alternatif. Jika mereka bersikeras bahwa Anda melakukan hal-hal yang membuat mereka terekspos pada tingkat risiko tertentu, Anda harus memastikan Anda memiliki jejak kertas (dan cadangannya) yang menunjukkan bahwa mereka secara eksplisit meminta ini, mengetahui risiko yang terlibat. Jika kamu benar - benaryang bersangkutan, Anda dapat memberi tahu mereka bahwa Anda akan dengan senang hati melakukan apa yang mereka inginkan, jika mereka pertama kali menandatangani semacam dokumen hukum / penafian di mana mereka mengakui risiko yang terkait dengan apa yang mereka minta Anda lakukan (dan tentu saja mencari pengacara untuk menyusun dokumen semacam itu). Saya pribadi tidak tahu ada preseden untuk dokumen semacam itu untuk situasi ini, tetapi saya yakin Anda dapat menemukan pengacara untuk membantu Anda dalam hal ini. Jika perusahaan Anda memiliki departemen hukum, itu mungkin sesuatu yang harus mereka terlibat jika ada potensi tanggung jawab perusahaan. Dan tentu saja, jika ini serius, Anda harus mendiskusikan ini dengan manajer Anda juga.
Saya pikir satu-satunya situasi di mana mungkin OK untuk hanya menolak untuk melakukan pekerjaan adalah jika ini adalah perangkat lunak untuk sistem di mana kesalahan yang Anda khawatirkan dapat menyebabkan sistem dikompromikan sedemikian rupa sehingga bisa mengakibatkan dalam kemungkinan besar nyawa / cedera pribadi serius atau semacam kehilangan harta benda yang dahsyat.
sumber