【问题标题】:Angular js how to set header get url in new windowAngular js如何在新窗口中设置标题获取url
【发布时间】:2017-05-13 19:49:23
【问题描述】:

如何设置标题并在新窗口中打开一个 url (https://www.example.com)。我必须发送身份验证信息标头,因为它是敏感信息,它不应该是 url 请求参数的一部分。

我正在使用 angularjs 来执行此操作。

我已经解决了现有的问题。 Convert $.param in angularjs how to add authentication header to $window.open Open a PDF in a new window of the browser with angularjs

提到的解决方案是将令牌附加到 url,有些对我不起作用..请帮助我..

【问题讨论】:

  • 我建议你做一些加密并在url中传递它,这样用户就无法理解它。
  • @VenkateshKonatham — 这是一个密码。用户无需理解,只需复制即可。
  • 您的标头设置在服务器端,而不是来自客户端。您的 (example.com) 网站是否由您的组织控制?如果是 - 首先发出一些隐藏的 ajax 请求以将您的令牌保存到 cookie 并从 cookie 中使用它。
  • @VadimB — “您的标头设置在服务器端,而不是来自客户端” — HTTP 请求和响应 两者 都有标头。身份验证凭据在请求中发送。

标签: javascript angularjs


【解决方案1】:

无法指定浏览器在加载新页面时发送的 HTTP 标头。

您最接近的应该是:

  1. 打开包含新文档的窗口
  2. 将 JavaScript 放入该文档中:
    1. 使用 XMLHttpRequest 加载数据(带有您想要的标头)
    2. 使用该数据修改显示页面的内容
    3. 使用 History API 更改 URL

这将防止肩冲浪从 URL 中嗅探凭据……但这是解决问题的一种非常复杂的方法。只颁发限时凭据并将其包含在 URL 中并使其成为一个足够复杂的字符串以使其难以复制会更简单。

没有任何技术可以阻止人们查看页面的源代码或使用浏览器中的开发人员工具来查看 HTTP 请求并将数据复制到那里,因此,如果您的目标是让用户在不让用户访问的情况下访问某些内容访问提供该访问权限的凭据,那么您就不走运了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多