http - MSXML6.dll Access Denied 将 HTTP 重定向到 HTTPS

标签 http https vbscript msxml6

我在类似 vbscript 的代码中使用 MSXML6 通过 HTTP 下载数据。但是服务器现在需要连接才能升级到 HTTPS。 这导致 xmlhttp 对象失败并出现错误“msxml6.dll:访问被拒绝。

Set http = CreateObject("msxml2.xmlhttp.6.0")
http.open "Get", URL, False 'false is for 'async'
http.send

使用嗅探工具,在收到redirection-to-https响应后,操作停止,并产生错误,没有进一步的细节。

请求 http://host/doc.php(纯 http),返回的 header 如下所示:

HTTP/1.1 301 Moved Permanently
Date: Fri, 19 Jul 2019 23:59:30 GMT
Content-Type: text/html; charset=iso-8859-1
Transfer-Encoding: chunked
Connection: keep-alive
Location: https://host/doc.php
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare

但是,如果请求的 URL 已经是 https,则操作会正常恢复,不会有任何投诉。

我可以在服务器端做些什么来说服 xmlhttp 和平地将连接升级到 https?

更新客户端应用程序中的代码是不可能的,因为它是一个遗留应用程序,有很多用户在使用它,没有更新机制。

要求用户更新 URL 在 http 之后添加一个“s”是可行的,但太麻烦了,因为联系他们并告诉他们也不是一件容易的事。

编辑:

结论在this comment .总结一下,这是一个客户端保护功能,不能从服务器端覆盖。

最佳答案

Xmlhttp request is raising an Access Denied error中提到的问题您是否需要使用不限于访问受 IE 信任且受 IE 安全策略限制的站点的 XMLHTTP 服务器版本。这是因为 XMLHTTP 是为客户端设计的,而 ServerXMLHTTP 是专门为服务器端使用而设计的。

关于http - MSXML6.dll Access Denied 将 HTTP 重定向到 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57117978/

相关文章:

android - 通过 HTTP 表单上传文件,通过 MultipartEntityBuilder,带有进度条

.net - Http 和文件上传 - 它是如何工作的(幕后)

.htaccess - HTTP 到 HTTPS 和非 WWW 到具有多个域的 www

tomcat - 添加额外的 Tomcat 连接器失败(权限被拒绝)

VBScript 获取临时文件夹

random - 同时不同的随机数

sockets - 如何从vbscript连接到Socket

http - 如何测试下载到另一个国家特定服务器的速度?

delphi - Indy (Delphi) Http 客户端和摘要认证

http - 适用于不同类型资源的理想HTTP缓存控制 header