首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以替代外部调用的秘密URL。

问可以替代外部调用的秘密URL。
EN

Stack Overflow用户
提问于 2014-04-23 05:37:55
回答 1查看 107关注 0票数 1

我的应用程序(ASP.NET MVC)中有几个操作不是浏览器客户端想要调用的,而是来自我的属性的其他外部应用程序,比如Azure Scheduler和我的移动应用程序(Android)。

要使这些操作按预期工作,必须传递一个秘密参数和值。

代码语言:javascript
复制
public ActionResult SendPendingMessages(string secret = "")
{
     if (!secret.Equals("hardcoded_secret"))
          return null;

     // Real stuff here...
} 

上面的操作是调度程序每30分钟调用一次并发送预定消息的。

其他例子:

代码语言:javascript
复制
public ActionResult DownloadUndownloadedMessages(string secret = "")
{
     if (!secret.Equals("hardcoded_secret"))
          return null;

     // Real stuff here...
} 

上面的操作是我的android应用程序调用的.。

它获取未读的消息。

从这些外部应用程序中,我总是使用HTTPS,所以我确信硬编码密码(以及URL本身)是秘密的。

我不喜欢我在这里做的事。这给了我一种不好的感觉。

举几个关于这种方法的问题:

  • 硬编码的秘密是长期的秘密。
  • 如果其他开发人员在这些外部应用程序上工作,他们将知道秘密URL
  • 我不喜欢只知道URL就可以调用这些操作。我想要一些更坚实的东西,而不仅仅是隐藏URL。

最后,问题是:

实现这个目的最正确的方法是什么?

例如,如果一个开发人员在WhatsApp工作,他就被解雇了。他能用从WhatsApp客户端应用程序中获得的知识来调用WhatsApp服务器的行为吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-23 06:34:48

我认为您最好的方法是遵循WebAPI路径,并实现下面post提供的答案之一:

How to secure an ASP.NET Web API

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23235625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档