Dan*_*Dan 11 security url asp.net-mvc
任何好的策略,代码片段等,以防止URL操作?
例如,我有这个URL,http://localhost/profile/edit/5
id可以很容易地改为任何东西,因此人们可以编辑他们不应该的配置文件.
以下是我想到的一些想法,但它们都有缺点:
将我的系统更改为使用GUID主键 - 几乎不可能猜出键 - 但人们仍然可以从应用程序的某个部分获取GUID,然后在另一个URL中使用它.
使用TempData存储密钥 - 防止在以后使用时发送的URL.
在显示页面之前在控制器中执行检查 - 意味着您必须在任何地方执行"管理"代码以检查操作.
什么是最好的事情?其中一个或其他什么?
Mic*_*tum 18
3号是正确的做法.服务器端安全验证始终是您所需要的,因为这是您完全控制并可依赖的机制.
第一个是Obscurity的安全性,如果有人意外地将他的URL发布到某个地方(就像人们在复制/粘贴链接时经常使用会话ID一样),您的"安全性"就会被破坏.
2号似乎是一个弱安全性 - 如果你经历麻烦,更好地实现适当的安全性.这也允许人们为页面添加书签.