javascript - https 转 http 请求

标签 javascript ajax https cross-domain

我对这些协议(protocol)感到困惑。使用这些协议(protocol)时可以使用哪些请求:

  • HTTP 到 HTTP
  • HTTPS 到 HTTP
  • HTTP 到 HTTPS
  • HTTPSHTTPS

我有一个 HTTPS 域和 HTTP 子域。我可以从 HTTPS 请求到 HTTP(POST 和 GET)来检索数据吗?

例如:

$.getJSON('http://api.domainName.com/api/Visitor/GetStates/' + countryId, function(data) {
  $.each(data, function(key, value) {
    $("#StateId").html($("#StateId").html() +
      "<option value='" +
      value.StateId +
      "'>" +
      value.StateName +
      "</option>"
    );
  });
}

此请求发送自:https://domainName.com/

此外,我还解决了子域中的 CORS 问题。

最佳答案

如果原始 html 页面是 https 且请求资源是 http 格式,那么浏览器将无法阻止任何资源( script 、 link 、 iframe 、 XMLHttpRequest 、 fetch )下载。

浏览器抛出混合内容错误。

来自 Mozilla MDN 的片段

混合事件内容是可以访问 HTTPS 页面的全部或部分文档对象模型的内容。这种类型的混合内容可以改变 HTTPS 页面的行为,并可能窃取用户的敏感数据。因此,除了上述混合显示内容的风险之外,混合事件内容还容易受到其他一些攻击媒介的攻击。<​​/p>

在混合事件内容的情况下,中间人攻击者可以拦截 HTTP 内容的请求。攻击者还可以重写响应以包含恶意 JavaScript 代码。恶意事件内容可以窃取用户的凭据、获取有关用户的敏感数据或尝试在用户的系统上安装恶意软件(例如,通过利用浏览器或其插件中的漏洞)。

混合内容涉及的风险确实取决于用户正在访问的网站类型以及该网站暴露的数据的敏感程度。网页可能具有全世界可见的公共(public)数据或仅在经过身份验证时可见的私有(private)数据。如果网页是公开的并且没有有关用户的敏感数据,则使用混合事件内容仍然为攻击者提供了将用户重定向到其他 HTTP 页面并从这些站点窃取 HTTP cookie 的机会。

有用的文档链接

MDN - https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content

Google 开发人员 - https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content

关于javascript - https 转 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41137528/

相关文章:

javascript - 如何使用 ajax 调用更新/更改数据库值而不刷新页面

php - 单击行以使用其数据预填充表单仅显示第一条记录

java - 缓解 Java 中针对 https 请求的 session 劫持

javascript - 创建显示/隐藏链接 - HTML 和 CSS

javascript - 如何在 dx-Chartjs 上创建多个系列

javascript - 通过 AJAX 加载页面时输出 Javascript 变量

.htaccess - 在 SYMFONY 中仅使用 HTACCESS 强制 HTTPS

java - 限制 SSLContext 中的协议(protocol)

javascript - data-dismiss ="modal"关闭 MVC 局部 View 中同一页面上所有打开的模态对话框

javascript - 有没有办法减少与其调用者通信的无限生成器中的产量数量?