如何将用户名/密码以JSON格式放置以用于设置XHR请求标头

问题描述 投票:1回答:1

在下面的示例中,如果我使用用户名和密码,那么任何人都可以在页面源中看到它。是否有任何隐藏用户名和密码的解决方案,或者我们可以将凭据放在jsonxml文件中并访问它以将其设置在标题中,如果是,请告诉我们解决方案。

$.ajax({     type: "POST",
    contentType: false,
    data: formData,
    url: "external domain URL",
    crossDomain: true,
    cache: false,
    processData: false,

    beforeSend: function(xhr) {

        xhr.setRequestHeader("Authorization", "Basic " + btoa("username" + ":" + "Password"));
        xhr.withCredentials = true;

},
ajax xmlhttprequest request-headers
1个回答
0
投票

您可以将用户名和密码编码为文本并使用该文本,但这是危险且不可行的,因为如果有人因某种原因设法对其进行解码,那么这将是一个巨大的安全漏洞。如果服务器接受编码文本,这也是一个安全漏洞,所以你应该避免这种方法,除非你使用一些临时令牌,但这只会减少,但不能消除风险。

相反,如果你有一个页面会更好,它将按如下方式工作:

  • 当需要数据时,会向服务器发送请求以收集用户名和密码
  • 服务器将使用这些数据的编码变体进行响应
  • 客户端会对此进行解码
  • 客户端将发送请求

此外,您可以将服务器用作代理,即将所有请求发送到您自己的服务器而不是目标服务器,然后服务器将请求转发到目标服务器并将响应转发给客户端。这会更好。

© www.soinside.com 2019 - 2024. All rights reserved.