防止发现URL

时间:2014-11-10 08:31:06

标签: asp.net-mvc

最近我创建了一个控制器,只要我访问url,就会在我的数据库中插入一些控制器。

我的路线配置:

        routes.MapRoute(
        "SCRoute",
        "SC/{pdate}",
        new
        {
            controller = "SC",
            action = "Index",
            pdate = DateTime.Today.Date.ToString("yyyyMMdd")
        });

我的问题是,如果我不公开此url,是否会被检测到?当然,由于没有凭据登录,任何有链接的人都可以访问该页面,但如果我可以保留它自己,那么它会安全吗?

此控制器也没有内部链接。除了我的想法和路线配置之外,它不会被提及!

1 个答案:

答案 0 :(得分:1)

  

但如果我可以为自己保留

不管你怎么隐藏它都不安全。您可以在理解代码的同时意外执行此URL或其他开发人员可以执行此操作。有很多事情可以让它运行起来。

如果要在数据库中插入内容,为什么不创建脚本并执行它。这将是任何环境中的受控变化。

更新 - 来自用户的评论

您可以按照以下方式制定解决方案:

  1. 定义动作过滤器。
  2. 检查网址中的唯一值,例如IP地址(Example)或编写算法以生成哈希。
  3. 如果要从任何位置运行操作,请在URL中生成哈希并提供。定义的过滤器将验证散列有效性。仅提供具有有效散列的请求。
  4. 希望得到这个帮助。