我只想评估我应该如何处理这个问题,并最终寻找一个快速胜出的意见(错误的方式来思考的事情螺母时间压力意味着我必须快速思考和行动!防止网址篡改访问其他用户的数据
我已经拥有一个网站,有一个有点问题
我登录使用标准窗体身份验证为User1234和我的网址如下:
www.mywebsite.co.uk/ 1234/Contact。
This将带我到User1234的细节。
您可以将两个和两个放在一起,并正确地假设1234是某种用户标识。
一旦通过身份验证,我可以访问[Authorize]属性存在的视图,任何匿名/未经身份验证的用户都会被重定向。
然而,一旦身份登录User1234,那么我可以通过URL鼓捣像这样:
www.mywebsite.co.uk/1235/Contact。
所以我被认证为User1234,但可以看到User1235的数据。由于显而易见的原因,这很糟糕。
当我登录时,我在会话中主动设置了登录ID,因此理论上我可以在用户点击ActionResult时进行检查,我可以根据会话登录ID检查URL中存在的ID。然而,这是一个有很多行动结果的项目,因此我不愿意花我的星期六下午为每个ActionResult添加一些东西。
在global.asax中是否存在一个事件我可以使用哪个命中每个ActionResult请求,我可以将会话登录ID与URL ID进行比较?
另外,任何人都可以提供一些关于如何实现这一点或限制URL篡改的建议吗?