在下面的示例中,如果我使用用户名和密码,那么任何人都可以在页面源中看到它。是否有任何隐藏用户名和密码的解决方案,或者我们可以将凭据放在json
或xml
文件中并访问它以将其设置在标题中,如果是,请告诉我们解决方案。
$.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;
},
您可以将用户名和密码编码为文本并使用该文本,但这是危险且不可行的,因为如果有人因某种原因设法对其进行解码,那么这将是一个巨大的安全漏洞。如果服务器接受编码文本,这也是一个安全漏洞,所以你应该避免这种方法,除非你使用一些临时令牌,但这只会减少,但不能消除风险。
相反,如果你有一个页面会更好,它将按如下方式工作:
此外,您可以将服务器用作代理,即将所有请求发送到您自己的服务器而不是目标服务器,然后服务器将请求转发到目标服务器并将响应转发给客户端。这会更好。