Gesaan dan kes penggunaan
Reka bentuk Lejar Resit Keizinan berbilang penyewa yang merekodkan keizinan, penarikan balik dan perubahan tujuan sambil menyokong pertanyaan audit. Gesaan ini sesuai untuk temu duga reka bentuk sistem, kejuruteraan privasi dan infrastruktur platform. Perkara utama adalah memodelkan keizinan sebagai fakta yang boleh dikesan dan bukannya nilai boolean yang boleh ditulis ganti.
Perkara yang dinilai oleh penemu duga
- Sama ada anda mentakrifkan peristiwa keizinan, versi tujuan, kategori data, bukti dan semantik penarikan balik.
- Sama ada pengasingan penyewa, integriti tambah sahaja (append-only), keidempotanan dan pertanyaan yang boleh disahkan direka bentuk bersama.
- Sama ada penyebaran penarikan balik, pengguna tertangguh, percubaan semula dan pembetulan sejarah dikendalikan.
- Sama ada peminimuman privasi, kebolehhitungan, prestasi pertanyaan dan pengekalan diseimbangkan.
Soalan untuk dijelaskan sebelum menjawab
Sahkan sama ada subjek adalah pengguna akhir atau pentadbir perusahaan, dan sama ada keizinan diskopkan mengikut tujuan, kategori data, rantau atau pemproses. Tanya tentang volum peristiwa puncak, dimensi pertanyaan, tarikh akhir audit, storan rentas rantau, kesegeraan penarikan balik dan perakuan hiliran. Jelaskan eksport yang boleh dibaca mesin, pegangan undang-undang (legal hold), permintaan pemadaman dan kunci yang diuruskan oleh penyewa.
Rangka kerja jawapan 30 saat
“Saya akan menggunakan tujuan berversi dan aliran peristiwa tambah sahaja untuk pemberian, kemas kini, penarikan balik dan hasil penyebaran. Operasi tulis dipisahkan mengikut penyewa dan bersifat idempoten; operasi baca mengembalikan keadaan berkesan dan rantaian bukti pada masa yang dipilih. Penarikan balik memberitahu pemproses hiliran melalui baris gilir yang boleh dipercayai dengan percubaan semula dan semakan manusia. Penyulitan, medan minimum, kunci penyewa dan dasar pengekalan mengehadkan pendedahan.”
Jawapan mendalam langkah demi langkah
- Model domain: Takrifkan subjek, penyewa, versi tujuan, kategori data, sumber keizinan, bahasa, cap masa, teks bukti dan peralihan keadaan.
- Operasi tulis dan integriti: Tambah peristiwa dengan jujukan monotonik dan kunci keidempotanan permintaan; gunakan rantaian cincangan (hash chain) atau tandatangan untuk mengelakkan suntingan senyap, sambil memisahkan putaran kunci daripada pengasingan penyewa.
- Operasi baca keadaan: Bina unjuran untuk pertanyaan subjek-dan-tujuan sambil mengekalkan kedudukan peristiwa, versi unjuran dan rujukan bukti.
- Penyebaran penarikan balik: Terbitkan penarikan balik kepada pemproses hiliran dan rekodkan perakuan, percubaan semula dan kegagalan muktamad setiap penerima; "dihantar" tidak boleh bermakna "pemprosesan dihentikan."
- Operasi dan tadbir urus: Pisahkan data, susun storan bertingkat, audit akses, utamakan pemadaman berbanding pegangan undang-undang, serta sediakan eksport dan penomboran halaman yang dibenarkan oleh penyewa.
Contoh jawapan berkualiti tinggi
Saya akan membahagikan lejar kepada lapisan peristiwa yang tidak boleh diubah (immutable), unjuran yang boleh dibina semula dan storan bukti terkawal. Setiap peristiwa akan menyertakan penyewa, rujukan subjek yang tidak boleh diterbalikkan, tujuan dan versi, kategori data, tindakan, sumber, masa, versi dasar dan kunci keidempotanan permintaan. Teks keizinan asal atau tangkapan skrin UI akan berada dalam storan disulitkan dan tidak termasuk dalam pertanyaan biasa. Penyewa akan mempunyai sekatan dan skop kunci yang berasingan; peristiwa akan ditambah pada jujukan penyewa serta menggunakan cincangan dan tandatangan untuk mengesan suntingan senyap. Perkhidmatan pertanyaan akan membaca unjuran untuk keadaan berkesan pada masa yang dipilih, kemudian mengembalikan kedudukan peristiwa dan rujukan bukti. Peristiwa penarikan balik akan memasuki baris gilir yang boleh dipercayai dan menjejaki perakuan bagi setiap pemproses hiliran. Masa tamat atau penolakan akan dicuba semula dan dieskalasikan, dengan keadaan eksplisit untuk direkodkan, dihantar, diperakui dan gagal. Unjuran boleh dibina semula daripada lejar untuk perubahan versi tujuan dan pembetulan sejarah. Saya akan mengesahkan pengasingan penyewa, permintaan pendua, peristiwa luar turutan, putaran kunci, kependaman penarikan balik, kebenaran eksport dan pegangan pemadaman dengan ujian serta latihan tayangan semula (replay drills).
Kesilapan lazim
- Hanya menyimpan
consent=true, yang memadamkan versi tujuan dan sejarah penarikan balik. - Menganggap kejayaan pemberitahuan hiliran sebagai bukti bahawa pemprosesan telah dihentikan.
- Menggantikan peristiwa tambah sahaja dengan baris yang boleh disunting, menyebabkan kehilangan bukti perubahan sejarah.
- Meletakkan subjek yang boleh dikenal pasti atau data penyewa dalam indeks global, melanggar pengasingan dan peminimuman.
- Mereka bentuk operasi tulis tanpa mengambil kira peristiwa luar turutan, percubaan semula, pembinaan semula unjuran, pemadaman atau pegangan undang-undang.
Soalan susulan dan respons
Bagaimana jika pengguna mengklik keizinan dua kali?
Nyahduplikasi dengan kunci keidempotanan permintaan dan cap jari peristiwa sambil mengekalkan perubahan sumber atau versi UI yang bermakna. Kembalikan keadaan berkesan dan kekalkan rekod permintaan yang digabungkan atau diabaikan.
Adakah perubahan versi tujuan memerlukan keizinan baharu?
Anggap teks tujuan dan versi sebagai rujukan yang tidak boleh diubah. Jika versi baharu memperluas pemprosesan, cipta keadaan keizinan-semula-diperlukan; jangan gunakan keizinan lama secara senyap pada tujuan baharu.
Bagaimanakah lejar menyokong permintaan pemadaman?
Asingkan bukti audit yang mesti dikekalkan daripada data subjek yang boleh dipadamkan, menggunakan rujukan bukan pengenalan dan pemadaman kriptografi di mana sesuai. Pegangan undang-undang diutamakan berbanding pemadaman biasa, dengan skop dan pengecualian direkodkan sebagai peristiwa terkawal.
Bagaimanakah anda membuktikan bahawa pertanyaan tidak terlepas sebarang peristiwa?
Kembalikan julat jujukan penyewa, versi unjuran dan ringkasan semakan peristiwa. Alat audit boleh memainkan semula lapisan peristiwa pada titik yang sama dan membandingkannya dengan unjuran.