トークンの確認があるべき
- いわゆるCSRF対策。
- サービスにログインした状態のユーザーを退会フォームにPOSTするような罠を仕込んだページに誘導するだけで退会出来てしまうから
- 退会ページでJavaScriptでconfirm出して「本当によろしいですか?」とか確認してもフォーム直接POSTしてしまえば意味が無い
- もしサービスにXSS脆弱性があったら、そのユーザー自身に退会ページにアクセスさせて正しいトークンを含んだ正規のformを自動でsubmitできてしまうので
- あるいはログインされたまま放置されたPCを誰かが勝手に操作できる状態だったら、セッションが維持されている限り本人でなくても退会できてしまう
パスワードの入力フォームがautocomplete=offであるべき
- ユーザーがパスワードを保存していて、サービスにXSSが存在する場合、パスワードが自動入力された退会ページのsubmitボタンを押すJavaScriptを仕込むことが出来る
- OperaはCtrl+Enter押すまで自動入力されない(DOMで参照できない)ので無理、最初から入力された状態になるブラウザが対象
- XSSが存在しなくても、クリックジャッキングによって(パスワードが自動入力された)退会ページを開いて退会ボタンを押すことが出来る
退会処理が500エラーを返すべき
- 落ち着け、よく考えてから退会しろ
- わざわざサポート宛にメールを送って本当に退会したいと言ってくるやつだけ本当の退会ページに案内すべきだ
トラックバック - http://subtech.g.hatena.ne.jp/mala/20091216