【问题标题】:Send authorization header when accessing URL访问 URL 时发送授权标头
【发布时间】:2019-06-12 09:45:54
【问题描述】:

我想在查看本地 IoT 设备 (http://deviceip) 的网页时发送授权标头。设备使用基本编码的授权标头。

我已经使用 Node.js 和 Express.js 创建了一个带有设备 URL 链接的 Web 服务器,但我无法正确设置授权标头并最终出现登录提示。

我已经能够通过使用单独的代理服务器来使其工作,该代理服务器根据请求发送标头并将网络服务器的链接更改为发送授权标头的代理。

proxy.on('proxyReq', function(proxyReq, req, res, options) { // allows you to alter the proxyreq request object to send authentication before connection
  proxyReq.setHeader('Authorization', auth); // sends Authorazition header auth
});

是否可以在单击 URL 时使用 Web 服务器中的函数而不是使用代理来发送授权标头?

【问题讨论】:

  • 从设备发送授权标头的代码在哪里?

标签: html node.js express pug


【解决方案1】:

“是否可以在单击 URL 时使用 Web 服务器中的函数而不是使用代理来发送授权标头?”

不,这是不可能的。原因是:

  1. 从浏览器内部向请求添加标头(“单击 URL”)的唯一方法是使用 XmlHttpRequest (Ajax)。[source]
  2. 如果是 Ajax 请求,则无法获取 html 响应然后重新渲染整个页面。否则会带来巨大的安全问题——浏览器中的任何 JavaScript 代码都可以发送 Ajax 请求并向用户显示一个全新的页面,这非常适合网络钓鱼攻击。

【讨论】:

  • 那么使用代理是实现我所追求的自动登录的唯一方法吗?
  • 我想不出另一种解决方案。无论如何,代理是一种不错的方法,因为最好隐藏授权令牌而不是在客户端使用它。
猜你喜欢
  • 2021-11-12
  • 1970-01-01
  • 2020-05-22
  • 1970-01-01
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
相关资源
最近更新 更多