アカウント削除機能に意味はない - Qiita
いろいろ間違ってる。まずログの管理とデータ管理は別の話し。その上で論理削除と物理削除は仕組みの違い。その上で仮に表向き削除したとしても実態としてデータを保有すると今の日本でも個人情報の管理義務が生じる
まず、元記事は色々話しがごっちゃになってる。
まぁ「世の中的にそういった仕組みが跋扈している」という意見表明であれば良いと思うが、どうも記事を読むと「現実的に無理なんだ。わかるよね?」という記事によめるので「そんなことはねーよ」というツッコミをいれたい。
確かに実態として論理削除をしている会社は有るが、それはその会社がそういった運用をしているというだけであって、昨今の個人情報保護下においては、論理削除であるか、それとも物理削除であるかなどという話しに関係なく、個人情報に類するデータを保有しているだけで対象となる。
また、犯罪捜査時や裁判所の命令時にデータを照会云々は確かにあるが、それは「保有している限りの」という話しに過ぎない。
ただ、運営するサービスによっては、ログの保存期限が明文化されているものもあるので、そういった場合は、必ず利用規約や個人情報保護に関する規約においてその事を伝える必要があり、且つ、万が一その情報についての照会が行われた場合は、対応する義務を負う。
国税云々の話が記事にでてくるが、それは取引履歴であってユーザー情報全てではないし、そもそも仮に削除していたとしても一部の法令で定める文書以外についての保存義務が存在しないものについて削除したとしても別に罪にも問われないし、問題ともならない。
一方で、論理削除に話しを戻すと、論理削除の方式にもいろいろある。
もっとも雑な対応が記事にあるものだが「消した事にするだけ」というものだ。
これはタチの悪い入門書に多いが、論理削除の極端な例に過ぎない。
いわゆる個人情報保護法もなければ、データの所有権についての議論もなされないインターネット黎明期の名残だとおもっていただいて差し支えない。
では他にはどのような方法があるのか。
例えば、論理削除を行った上で個人情報に類するデータはダミーデーターに置き換えてしまう方法。
この場合はデータベースに作りも多少意識する必要があるが、それほどハードルも高くなくトランザクション系のデータの内容にもよるが比較的容易に実現可能。
仮にトランザクション系データが膨大で参照が多いようなケースは、そもそもデータベースを直接参照しているとは思えないので、そういった場合、つまりNoSQL等であれば物理削除をしてしまう事も普通にある。その後、バックエンドの実態のデータはバッチ削除という方法も普通に行う。
さて、論理削除に近い話題で、同一アカウントの多重作成の予防をどうするか?という話しがある。
例えば、一度作成されたメールアドレスやカード番号について、アカウントが削除された場合、同一の情報では再作成させないというものだ。
(タチの悪い)論理削除であれば最悪内部フラグを無視して検索すれば過去の履歴はヒットするわけですが、論理削除後にダミーデータで上書きしてしまうと当然それはヒットしない。
ではどうするのか?
まぁ、パスワードと同じですね。
当該データのハッシュ を作成しましょう。
確立的に全く衝突が発生しないわけではありませんが、基本的には無視できるレベルのものです。
ハッシュ化する事で理論上一方方向のみの処理が実現できますので、不要な情報を生で持つ必要もありません。
最近ではクレジットカード情報は自社で持たないケースが多いですが、モダンな仕組みでは最初からインフラとして入力フォームが提供されるものの、少し古い仕組みですとフォームは自社作成で、バックToバックで通信するようなケースですとクレジットカードや名義情報を保有する事となります。こういったケースで重複登録を回避したい場合や、一度ロックしたカード番号について拒絶したい場合は、生の番号を保持するのではなくハッシュ化した上で一時的に保有するようにすべきでしょう。
これらは一例に過ぎませんが、少なくとも各社様々な方法でトレードオフはありつつもしっかりとした対応を行っています。
もしも貴方の会社のシステムが論理削除といってただフラグを立てているだけのものであれば、貴方の会社の技術責任者にはもう少し修行を積ませた方が良いかもしれません。