最近、CitiGroupハッキング事件に関する興味深い記事を読みました http://www.nytimes.com/2011/06/14/technology/14security.html?_r=2&pagewanted=1&ref=technology
これにより、データベースに100,000行の機密性の高い従業員データのテーブルがあると思いました。テーブルには、ID列であるIdと呼ばれる主キーがあります。
従業員はWebポータルにログインでき、彼の詳細はRESTful URL({Controller} / {Action} / {Id})を介して取得されます(例:/ Employee / Details / 31)。
では、任意のパラメーター(Id = 32など)を{Id}パラメーターに置き換えて、従業員#32の詳細を取得するのをやめるにはどうすればよいですか?これはCitiGroupで起こったことですか?
これをどのように防ぎますか?つまり、ユーザーがWebポータルですでに認証されているが、他のユーザーのレコードを表示する権限がない場合はどうでしょうか。IDに加えて、顧客用に他の特定の「トークン」を使用する必要がありますか?