C# 删除URL引用时阻止URL黑客攻击

C# 删除URL引用时阻止URL黑客攻击,c#,asp.net-mvc,referrer,C#,Asp.net Mvc,Referrer,我有一段代码,通过检查URL引用者来防止URL入侵页面 if (filterContext.RequestContext.HttpContext.Request.UrlReferrer == null) { // redirect somewhere else } 理想情况下,只需更改ID(例如,persons/1、persons/2等),就可以阻止某人查看记录详细信息页面 现在,如果推荐人没有被浏览器删除,这是可以的,但是如果是呢。有解决这个问题的办法吗 我使用的是C#MVC对此没有

我有一段代码,通过检查URL引用者来防止URL入侵页面

if (filterContext.RequestContext.HttpContext.Request.UrlReferrer == null)
{
    // redirect somewhere else
}
理想情况下,只需更改ID(例如,persons/1、persons/2等),就可以阻止某人查看记录详细信息页面

现在,如果推荐人没有被浏览器删除,这是可以的,但是如果是呢。有解决这个问题的办法吗


我使用的是C#MVC

对此没有解决办法,它要么存在要么不存在,但url ref并不意味着是一种安全机制。它很容易伪造。如果您唯一关心的是URL劫持,那么您所能做的最简单的更改就是将ID字段更改为uniqueIdentifier(Guid),这样用户就不能只在URL中添加增量数字

与其查看URL referer,不如检查用户所处的任何进程的工作流状态,以确保在该时间点允许他们进入该页面?您知道可以从客户端发送任何URL referer。因此,这绝不是一种安全的方式。而且,许多小型应用程序在其中刮取或以其他方式显示网页时,根本不会麻烦发送一个referer头。合法与否。URL引用者很容易被伪造,您不应该依赖它来实现任何类型的安全性。如果您有安全问题,那么至少您可以将ID从int值更改为Guid(uniqueIdentifier),这样用户就不能一直插入附加到url的int值。添加第二个查询参数(如另一个用户属性或加密的DT值)可能不值得花费黑客时间来搜索您的站点。有很多创造性的解决方案可以解决这个问题,但是基于url引用的安全性可能只会让你远离脚本小子。