我最近读到一篇关于花旗集团黑客事件的有趣文章 http://www.nytimes.com/2011/06/14/technology/14security.html?_r=2&pagewanted=1&ref=technology
这让我想到,假设我的数据库中有一个包含 100,000 行的敏感员工数据表。该表有一个名为 Id 的主键,它是一个标识列。
员工可以登录到 Web 门户并通过 RESTful Url ({Controller}/{Action}/{Id}) 检索他的详细信息,例如 /Employee/Details/31
现在,是什么阻止我用 {Id} 参数替换任何参数(例如,Id = 32)并检索 Employee #32 的详细信息?花旗集团就是这样吗?
你如何防止这种情况发生?即用户已经在门户网站上进行了身份验证但无权查看其他用户记录?除了 Id 之外,我还应该为客户使用其他特定的“令牌”吗?