我对这些协议感到困惑。如果使用这些协议,则可以使用哪些请求:
- http to http
- https to http
- http至 https
- https to https
i在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/
我在子域中解决了什么问题。
好吧,您无法浏览器会阻止任何资源(脚本,链接,iframe,xmlhttprequest,fetch),如果原始html页面在https中,请求资源在http中。P>
浏览器会引发混合内容错误。
Mozilla Mdn的摘要
混合活动内容是可以访问HTTPS页面文档对象模型的所有或部分的内容。这种混合内容可以改变HTTPS页面的行为,并可能从用户那里窃取敏感数据。因此,除了上面的混合显示内容所描述的风险外,混合活动内容很容易受到其他攻击向量的影响。
在混合的活动内容案例中,中型攻击者可以拦截HTTP内容的请求。攻击者还可以重写响应以包括恶意JavaScript代码。恶意活动内容可以窃取用户的凭据,获取有关用户的敏感数据,或者尝试在用户系统上安装恶意软件(例如,利用浏览器或其插件中的漏洞)。
混合内容涉及的风险确实取决于用户访问的网站类型以及对该网站的数据的敏感程度。该网页可能只有在经过身份验证时才能看到世界上可见的公共数据或私人数据。如果网页是公开的,并且没有有关用户的敏感数据,则使用混合的活动内容仍然使攻击者有机会将用户重定向到其他HTTP页面并从这些网站中窃取HTTP Cookie。
有用的文档链接
mdn -https://developer.mozilla.org/en-us/docs/web/security/mixed_content
Google开发人员-https://develovelers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content
您也需要将AJAX请求切换为HTTPS。
http://api.domainname.com/api/visitor/getstates/Interface添加标题" access-control-allow-origin: *"