【问题标题】:Blocking URL hacking when URL referrer is stripped当 URL 引用者被剥离时阻止 URL 黑客攻击
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多