退会しても実はデータが削除されないウェブサービスの実態
世の中にありふれているウェブサービスのユーザ登録
ITエンジニアにとっては常識かもしれませんが、一般人にとってはあまり知られていないだろう退会の話です
サービスを退会する時は「会員情報を削除する」なんていうボタンをポチッと押して、退会処理をすることが一般的かと思います
しかし、実は退会処理をしても内部的にはデータは削除していなかったりします
これはあまり一般の人には知られていない事ですね
よくあるウェブサービスの退会処理
ウェブサービスではユーザ情報をデータベースという場所に保存します
データベースはエクセルのようなものを想像してください
ユーザ登録
例えば、あるウェブサービスで上のような画面でユーザ登録をしたとします
ここに入力するとデータベースには以下のように情報が保存されます
退会処理
ところがせっかく登録したのに、サービスがつまらなかったのか、退会処理をするネコさん
ヘルプなどを参考にして上記の画面から退会処理を実行
消えないユーザ情報
この退会処理では、おそらくネコさんをはじめ多くのシステムに詳しくない一般人はこのような処理を期待してるはずです
かくして、ユーザ登録の時に入力したデータは綺麗さっぱり消し去られたのであった
めでたし、めでたし
・・・しかし、残念ながらそうはならない。
退会処理を実行するとデータベースの情報は以下のように更新されます
お分りいただけたでしょうか?
退会という欄(カラム)に「1」が追加されただけ
これがシステム上の退会処理ということになります
つまり、あなたが消えたと思っていた情報は消えておらず、ただ退会フラグがセットされるだけなのです
全てのウェブサービスがこうではないが
もちろん全てのウェブサービスがこういう処理をしているのかといえば、そうではないと思います
個人情報を抱えるようなセンシティブなサービスはしっかりと削除処理をしている、はず。。。です
しかしウェブサービスなんて世の中にはごまんとありふれている
個人情報を扱うような企業ですら流出事件が後を絶たないのに、弱小デベロッパーが作ったウェブサービスがこんなちゃんとした処理をしてることは稀なケースだと思います
なぜ消去しないのか
ではなぜ、フラグをセットするだけでユーザ情報を削除しないのでしょうか
その理由は、推測ですが後々の事を考えてのことだと思います
つまり退会したユーザの情報を後から利用するケースのことを想定しているのではないか、そう思います
実は僕が個人的に運営しているサービスも、データは削除してません
まあ、そもそも個人情報を登録するサービスじゃないし、正確には退会処理じゃないんですけども
それはなぜか?
・後からそのユーザがそのデータを復元して欲しいと頼まれるかもしれないから
・後から司法機関などにデータの提出を求められるかもしれないから
という理由が大きいかもしれません
個人情報ではありませんが、スパム行為防止のためにアクセス元情報を同時に記録してたりもします
つまりアクセス元のIPアドレスとかです
これを削除してしまうと、過去に荒らしていた人を照合できなくなったりするので、色々と開発する方にとっては都合が悪いのです
データを消す方法
では、何か我々サービス利用者にとって自衛する方法はないのでしょうか
僕が開発側の人間として、他人のサービスを利用するときに使っている自衛方法を紹介します
退会前にデータを更新
ほとんどのサイトにはユーザ登録した情報を更新できるシステムがあります
上記のような画面
退会ボタンを押す前に、この更新画面を利用します
具体的にはこう
このように、入力できる欄全てにデタラメな文字を入力して更新します
こうするとデータベースはこのように更新される。
その後に退会処理を実行すると、データベースはさらにこうなります
退会フラグがセットされます
この状態であれば、仮にデータベースの情報が流出してしまっても問題はありません
データベースに記録されているのはデタラメな情報だからです
注意点としては、必ず「ユーザ情報を更新」→「退会処理」の順番で行うことです
退会処理を先にしてしまうと、ユーザ情報を更新できなくなってしまうからです
実際に僕は利用するウェブサービスを退会するときには、このような手法をとっています
それでもデータベースが定期的にバックアップされていたら無意味なわけですが、バックアップを取ってるかどうかは外からはわからないし、やらないよりかはやったほうが100倍いいと思ってます
ディスカッション
コメント一覧
まだ、コメントがありません
新たにPostされたDocs
: ツール関連
キーボードを銀軸から赤軸に買い替えた話
約3年半前、仕事で使うキーボードとしてARCHISS ProgresTouchの ...: スマホ
楽天モバイルがおすすめできない人の特徴とは?
楽天モバイルの最強プランをおすすめできない人の特徴を簡単にまとめてみました また ...: システム開発
なぜスクラムがつらいのか?開発現場が疲弊するのか?スクラムに対する違和感と共に原因を考えてみた
今ではどこの開発現場に行っても、やれスクラムスクラムと、まるでスクラムでもやって ...: Laravel
1つのテーブルを複数のテーブルと結合したい【Laravel10】
1つのテーブルを2つの異なるテーブルに対して結合したいケースがあったのでLara ...: Laravel
Laravelで複数画像アップロード時のvalidateを指定【Laravel10】
jQuery - Image Uploaderを使って、フォームから複数の画像を ...HashMap
created_by
はやぴ
Web/アプリ開発エンジニア
Sierにてお堅いB向けのソフトウェア開発を経て、現在はC向けのWebやアプリを中心に開発しています。
Utilities