从Location的自动GET的303重定向中删除头信息

5
我有一个安全的端点(POST),需要一个授权头(Authorization header)。该端点可以返回一个303重定向,其中包含一个Location头,其中包含一个有效的URL,通过GET请求检索该URL。
问题是,授权头仅在原始URL上需要和被接受,然而它会自动地在GET请求中被浏览器传递到303 Location端点中。我该如何阻止这个授权头在重定向中被传递?

你要重定向的位置是在不同的域名还是相同的域名上? - Evert
@Evert 不同的领域,Azure Blob 存储 - S1r-Lanzelot
我想这一定是Axios的安全漏洞,而且相当严重。 - Evert
@Evert,让我用jQuery试一试看会发生什么。我想这是浏览器或其他什么原因造成的。在 303 响应和重定向之前或之后,此请求甚至都没有进入.then函数中。 - S1r-Lanzelot
这在使用Jquery时仍然会发生。Azure blob上的CORS是完全开放的。 - S1r-Lanzelot
1个回答

0
如果你想在服务器端去掉头部的某个属性,你可以在POST路由中进行处理。你可以在POST路由或其他中间件中实现这个功能。我不确定你在服务器端使用的是什么,但如果你使用的是express,你可以修改req.headers对象,删除属性或将其设置为任何你想要的值。试一试,看看是否能解决你的问题。以下是一个示例。
app.post('/your_route', (req, res, next) => {
  //whatever you're doing with your request here
  delete req.headers['header-name'];
  //your redirect here

});

这个代码示例并不完美,但是值得一试!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接