我正在使用 asp.net mvc3 创建一个小型 Web 应用程序
http://localhost:1871/ManageMember/Admin/MemberDetail/3
例如,我有上面的 url...您可以看到参数 3 很容易看到并且可以由用户更改,同样可以查看有关该特定 id 参数的详细信息
http://localhost:1871/ManageMember/Admin/MemberDetail/5
我想阻止用户篡改网址
我正在使用 asp.net mvc3 创建一个小型 Web 应用程序
http://localhost:1871/ManageMember/Admin/MemberDetail/3
例如,我有上面的 url...您可以看到参数 3 很容易看到并且可以由用户更改,同样可以查看有关该特定 id 参数的详细信息
http://localhost:1871/ManageMember/Admin/MemberDetail/5
我想阻止用户篡改网址
af320f32la0gw
不可能,除非您以某种方式破坏 3(即在->3
和bof320afj2fw
->的后端有一些映射5
)。那么至少很难猜出ID。
除此之外,您需要某种身份验证才能查看3
或5
最初。
最后,为什么要阻止人们这样做?似乎它对高级用户来说很方便。
if itIS == MVC
use Request.ServerVariables["http_referer"]
else if itIS == webforms
use HttpRequest.UrlReferrer
IE 允许您锁定地址栏(不确定其他浏览器是否支持此功能)。
但是,正如 E. Pills 指出的那样,无论 URL 多么容易、困难、受限制或“混合”,服务器端强制授权都是强制性的(您的代码和 URL 结构意味着您已经拥有适当的身份验证机制)。
实现此目的的一种方法是将服务器端会话令牌存储在初始身份验证中,并验证所有传入请求以获得正确授权。