【发布时间】:2017-08-29 15:19:28
【问题描述】:
我有一段代码可以通过检查 URL 引荐来源网址来防止对页面的 URL 黑客攻击
if (filterContext.RequestContext.HttpContext.Request.UrlReferrer == null)
{
// redirect somewhere else
}
理想情况下,通过更改 ID(例如,persons/1、persons/2 等)来阻止某人查看记录详细信息页面
如果浏览器没有删除引荐来源网址,这很好,但如果是的话。有解决办法吗?
我正在使用 C# MVC
【问题讨论】:
-
与其查看 URL 引荐来源网址,为什么不检查用户所处的任何进程的工作流状态,以确保他们在该时间点被允许访问该页面?
-
您知道可以从客户端发送任何 UrlReferrer。所以这绝不是一种安全的方式。
-
而且许多在其中抓取或以其他方式显示网页的小型应用程序根本不会费心发送引荐来源网址头。合法与否。
-
URL Referrer 很容易被伪造,你不应该依赖它来获得任何类型的安全性。如果您有安全问题,那么至少您可以将 ID 从 int 值更改为 Guid (uniqueIdentifier),这样用户就不能只插入附加到 url 的 int 值。添加第二个查询参数(例如另一个用户属性或加密的 DT 值)显然不值得花时间去攻击您的网站。有很多创造性的解决方案,但基于 url ref 的安全性可能只会让你远离脚本小子。
标签: c# asp.net-mvc referrer