Amazon web services 美国焊接学会、Beanstalk&x2B;工人层+;任务URL中的Cron和安全性

Amazon web services 美国焊接学会、Beanstalk&x2B;工人层+;任务URL中的Cron和安全性,amazon-web-services,cron,worker,amazon-elastic-beanstalk,Amazon Web Services,Cron,Worker,Amazon Elastic Beanstalk,我正在改造我的web应用程序,使其适应Beanstalk和工作人员希望我定义cron任务的方式: 我发现我必须实现一个执行任务的URL 在我看来,这就像一个巨大的安全漏洞,任何了解任务URL的人都可以调用该任务 向这些任务URL添加安全包装的常见模式有哪些?我回来时也经历了同样的事情。然而,如果你看一下文档,你会发现它谈到了以下内容(第三点除外) 确保URL只接受来自本地主机和IP的请求 使URL仅接受POST请求 最后但并非最不重要的数据应符合您选择的任何格式。我认为JSON是默认的 因

我正在改造我的web应用程序,使其适应Beanstalk和工作人员希望我定义cron任务的方式:

我发现我必须实现一个执行任务的URL

在我看来,这就像一个巨大的安全漏洞,任何了解任务URL的人都可以调用该任务


向这些任务URL添加安全包装的常见模式有哪些?

我回来时也经历了同样的事情。然而,如果你看一下文档,你会发现它谈到了以下内容(第三点除外)

  • 确保URL只接受来自本地主机和IP的请求
  • 使URL仅接受POST请求
  • 最后但并非最不重要的数据应符合您选择的任何格式。我认为JSON是默认的

  • 因为它只接受本地主机的请求,所以是安全的。如果您想要实现额外的安全性,您还可以检查标头,以便只允许某些代理。

    您应该能够简单地锁定分配给Elastic Beanstalk工作层环境的安全组,以便它只接受来自工作层中其他EC2实例的传入请求。换句话说,安全组应该有一个入站规则,源类型为“Custom”,源值为安全组的ID。然后,您可以确保只有工作层守护程序可以发布到您的工作层任务URL。

    问题是,相同的代码将部署到我的生产web app实例,并且这些实例必须具有公共访问权限。安全组是AWS网络级设置。这不是代码更改。因此,在每个EB环境中,代码应该是相同的。我的意思是,任务URL也将在我的生产服务器中公开(因为代码是相同的),在这些服务器上,我不能限制访问。啊,我明白你现在说的了。我真的不希望那个URL在非工作服务器上公开。您能否以某种方式更改服务器配置,以便仅基于环境变量启用该端点?在不了解更多关于您使用的编程语言和服务器的信息的情况下,我不知道如何推荐更具体的内容。我正在测试
    确保URL只接受本地主机的请求将使trickI向这些端点添加一个安全步骤,如
    request.host==“localhost”
    。但我有一个问题:我是否可以模拟我的笔记本电脑请求来自
    localhost
    ,并用一些
    /etc/hosts
    技巧欺骗服务器?您还可以添加IP限制,以便只允许localhost IP 127.0.0.1。