Saya akan menulis pedoman perusahaan tentang apa yang tidak boleh muncul dalam log (jejak aplikasi). Bahkan, beberapa pengembang mencoba untuk memasukkan sebanyak mungkin informasi dalam jejak, membuatnya berisiko untuk menyimpan log tersebut, dan sangat berbahaya untuk mengirimkannya , terutama ketika pelanggan tidak mengetahui informasi ini disimpan, karena dia tidak pernah peduli tentang hal ini. dan tidak pernah membaca dokumentasi dan / atau pesan peringatan.
Misalnya, saat berurusan dengan file, beberapa pengembang tergoda untuk melacak nama file . Misalnya sebelum menambahkan nama file ke direktori, jika kita melacak semua kesalahan, akan mudah untuk memperhatikan misalnya bahwa nama yang ditambahkan terlalu panjang, dan bahwa bug dalam kode lupa untuk memeriksa panjang file. string bersambung. Ini membantu, tetapi ini adalah data sensitif, dan tidak boleh muncul dalam log .
Di jalan yang sama:
- Kata sandi ,
- Alamat IP dan informasi jaringan (alamat MAC, nama host, dll.) ¹,
- Akses basis data,
- Input langsung dari pengguna dan data bisnis yang disimpan
tidak boleh muncul dalam jejak.
Jadi, jenis informasi apa yang harus dibuang dari log? Apakah ada pedoman yang sudah tertulis yang dapat saya gunakan?
¹ Jelas, saya tidak berbicara tentang hal-hal seperti log IIS atau Apache. Yang saya bicarakan adalah jenis informasi yang dikumpulkan dengan satu-satunya maksud untuk men-debug aplikasi itu sendiri, bukan untuk melacak aktivitas entitas yang tidak dipercaya.
Sunting: Terima kasih atas jawaban dan komentar Anda. Karena pertanyaan saya tidak terlalu tepat, saya akan mencoba menjawab pertanyaan yang diajukan di komentar:
- Apa yang saya lakukan dengan log?
Log aplikasi dapat disimpan dalam memori, yang berarti di plain pada hard disk di localhost, di database, lagi di plain, atau di Windows Events. Dalam setiap kasus, kekhawatirannya adalah bahwa sumber-sumber itu mungkin tidak cukup aman. Misalnya, ketika pelanggan menjalankan aplikasi dan aplikasi ini menyimpan log dalam file teks biasa di direktori temp, siapa pun yang memiliki akses fisik ke PC dapat membaca log tersebut.
Log aplikasi juga dapat dikirim melalui internet. Misalnya, jika pelanggan memiliki masalah dengan suatu aplikasi, kami dapat memintanya untuk menjalankan aplikasi ini dalam mode penelusuran lengkap dan mengirimkan file log kepada kami. Juga, beberapa aplikasi mungkin mengirim laporan kerusakan secara otomatis kepada kami (dan bahkan jika ada peringatan tentang data sensitif, dalam kebanyakan kasus pelanggan tidak membacanya).
- Apakah saya berbicara tentang bidang tertentu?
Tidak. Saya hanya mengerjakan aplikasi bisnis umum, jadi satu-satunya data sensitif adalah data bisnis. Tidak ada yang terkait dengan kesehatan atau bidang lain yang dicakup oleh peraturan khusus. Tapi terima kasih untuk membicarakan hal itu, saya mungkin harus melihat beberapa bidang untuk petunjuk tentang apa yang dapat saya sertakan dalam pedoman.
- Bukankah lebih mudah untuk mengenkripsi data?
Tidak. Ini akan membuat setiap aplikasi jauh lebih sulit, terutama jika kita ingin menggunakan diagnostik C # dan TraceSource
. Anda juga perlu mengelola otorisasi, yang bukan cara termudah untuk dilakukan. Akhirnya, jika kita berbicara tentang log yang dikirimkan kepada kita dari pelanggan, kita harus dapat membaca log, tetapi tanpa memiliki akses ke data sensitif. Jadi secara teknis, lebih mudah untuk tidak memasukkan informasi sensitif dalam log sama sekali dan tidak pernah peduli tentang bagaimana dan di mana log tersebut disimpan.
debug
nama file, tetapi tidak untukinfo
nama file.