我尝试使用Signature 4签署请求并从Angular4前端访问它来保护apigateway端点。
Signature 4文档指定: (https://docs.aws.amazon.com/apigateway/api-reference/signing-requests/):
以规范格式创建HTTP请求。规范请求必须包含主机和x-amz-date标头,用于没有有效负载的请求,例如GET或DELETE,并且还必须包含需要有效负载的请求的内容类型标头,例如PATCH ,POST或PUT。"
当我使用POSTMAN进行签名时效果很好,但是从浏览器中它没有用,因为当我尝试设置标题HOST时,chrome会抛出错误:
拒绝设置不安全的标题" Host" http.es5.js:1253
然后,如果我查看Chrome发送的请求标头,则没有主机标头,而是:权限标头。
据我所知,这是一个安全问题,并且无法强迫Chrome执行此操作。
有一种方法可以告诉AWS Signature 4考虑:authority insted host 吗?
或者还有其他方式可以安全地从浏览器访问? (据我所知,API GATEWAY不支持Signature V2)