我的应用程序(ASP.NET MVC)中有几个操作不打算由浏览器客户端调用,而是从我的属性的其他外部应用程序调用,例如Azure Scheduler和我的移动应用程序(Android)
要使这些操作按预期工作,必须传递一个秘密参数和值。
public ActionResult SendPendingMessages(string secret = "")
{
if (!secret.Equals("hardcoded_secret"))
return null;
// Real stuff here...
}
上述操作每30分钟由我的调度程序调用并发送预定的消息。
其他例子:
public ActionResult DownloadUndownloadedMessages(string secret = "")
{
if (!secret.Equals("hardcoded_secret"))
return null;
// Real stuff here...
}
以上操作由我的Android应用程序调用。
它会获取未读消息。
从这些外部应用程序,我总是使用HTTPS,所以我确定硬编码的密码(和URL本身)是秘密的。
我不喜欢我在这里做的事情。这给了我一种不好的感觉。
用这种方法列举一些问题:
问题是,最后:
实现此目的的最正确方法是什么?
如果开发人员在WhatsApp等公司工作,他就被解雇了。他可以通过看到WhatsApp客户端应用程序获得的知识来调用WhatsApp服务器的操作吗?