Javascript 将CORS与AWS API网关一起使用会带来什么安全影响?

Javascript 将CORS与AWS API网关一起使用会带来什么安全影响?,javascript,security,amazon-web-services,aws-api-gateway,Javascript,Security,Amazon Web Services,Aws Api Gateway,我看到了另一个关于使用带有访问控制的CORS的问题:*最大的问题是跨站点请求伪造攻击 我想知道在AWSAPI网关中使用它时是否也存在同样的问题 for API网关没有提到CORS的任何缺点 但是,显示访问控制允许原点:*仅与GET一起使用,但为PUT、POST和DELETE指定原点 对于我的特定用例,我想按照api网关文档所说的做:使用JavaScript客户端调用部署在不同域上的api(即my-api-id.execute-api.region-id.amazonaws.com/test)。我

我看到了另一个关于使用带有访问控制的CORS的问题:*最大的问题是跨站点请求伪造攻击

我想知道在AWSAPI网关中使用它时是否也存在同样的问题

for API网关没有提到CORS的任何缺点

但是,显示访问控制允许原点:*仅与GET一起使用,但为PUT、POST和DELETE指定原点

对于我的特定用例,我想按照api网关文档所说的做:使用JavaScript客户端调用部署在不同域上的api(即my-api-id.execute-api.region-id.amazonaws.com/test)。我为每个请求传递一个api密钥


使用访问控制允许源代码:*获取、发布、放置、删除时是否安全

无论您是否使用AWS API网关,CORS对安全性和浏览器支持都有影响

出于安全考虑,对这个问题有一个很好的解释:

请注意,如果API不是公共的,则不必将访问控制允许源设置为“*”。您可以将特定域列入白名单

在撰写本文时,CORS在以下主要浏览器版本中完全受支持:

  • 铬自31
  • iOS Safari从8.5开始
  • 自4.4以来的Android浏览器
  • 从11岁开始
  • 火狐41
  • 从8号开始的狩猎

关于部分支持的详细信息和信息,请参阅

< P>。您需要考虑一些事情来确定访问控制是否允许Ont: *将为您工作。
  • 身份验证机制:如果您使用cookie进行身份验证,那么*将不起作用,因为使用通配符时浏览器将允许传递凭据(cookie)。如果您使用的是基于授权标头的方法,那么这应该不是问题

  • 是否需要允许从任何域提供的javascript调用API。如果您正在设计某种公共web api,您希望从其他站点调用提供页面,那么无论如何您都需要通配符。如果您只计划自己的客户端代码调用api,那么最安全的做法是使用更严格的主机特定值。因此,如果您从myapp.example.com提供html和js,那么请设置访问控制允许来源:myapp.example.com的值。如果您需要提供来自多个域的html和js,但仍然不想向世界开放,那么您必须运行一些代码来读取传入的Origin:header和echo-back允许的代码,这些代码位于Access Control Allow Origin response header中,用于选项以及GET、POST、PUT、DELETE

  • 我建议您在API网关上创建一个简单的原型资源和方法,然后尝试从您自己的域中提供的一些html/js调用该API

    以下是一些更相关的SO问题: