Asp.net mvc 防止发现URL

Asp.net mvc 防止发现URL,asp.net-mvc,Asp.net Mvc,最近我创建了一个控制器,每当我访问url时,它都会插入我的数据库 我的it路线配置: routes.MapRoute( "SCRoute", "SC/{pdate}", new { controller = "SC", action = "Index", pdate = DateTime.Today.Date.ToString("yyyyMMdd

最近我创建了一个控制器,每当我访问
url
时,它都会插入我的数据库

我的it路线配置:

        routes.MapRoute(
        "SCRoute",
        "SC/{pdate}",
        new
        {
            controller = "SC",
            action = "Index",
            pdate = DateTime.Today.Date.ToString("yyyyMMdd")
        });
我的问题是如果我不公开这个
url
,它会被检测到吗?当然,由于没有凭证登录,任何人只要有链接都可以访问该页面,但是如果我可以为自己保存该页面,它会安全吗

也不会有与此控制器的内部链接。除了在我的头脑和路线配置中,它不会在任何地方被提及

但如果我能把它留给自己

不管你怎么隐藏它,它都不安全。您可以意外地执行此URL,或者其他开发人员可以在理解代码的同时执行此URL。为了让它运行,可能会发生很多事情

如果您想在数据库中插入一些东西,为什么不创建一个脚本并执行它呢。这在任何环境中都是可控的变化

更新-用户发表评论后

您可以通过以下几行计算出解决方案:

  • 定义一个动作过滤器
  • 检查URL中的唯一值,例如IP地址()或编写算法以生成哈希
  • 当您想从任何地方运行该操作时,在URL中生成哈希并提供。定义的筛选器将验证哈希有效性。将只提供具有有效哈希的请求
    希望有此帮助。

    由于路由只注册一次(在应用程序启动时),因此
    pdate
    参数的默认值将始终是应用程序启动的日期。@haim770这不是我要问的问题,这就是我不回答的原因。我已经编写了一个服务,它现在正在我的服务器上运行,但万一服务器关闭(电源故障…),我需要一些快速方法来插入数据,因为我的网站内容每天都在变化。
    快速方法
    这里指的是我可以使用3G手机轻松访问的方法connection@hoangnnm-更新了我的答案。