Javascript 在http站点上设置来自https的cookie

Javascript 在http站点上设置来自https的cookie,javascript,jquery,ajax,asp.net-mvc,cross-domain,Javascript,Jquery,Ajax,Asp.net Mvc,Cross Domain,我们正在尝试在页面上创建一个ajax登录控件。问题是,我们希望它是安全的,所以当你在我们的主页上,f.e。http://page.com 如果您想登录,那么使用jquery和您的登录名和密码的ajax请求将https://page.com/sign-in/ 行动 问题是,由于跨域安全,通常我们不能发送这样的请求。在singnin操作中,我们将头访问控制Allow Origin的值指向http站点url,这样它就可以发出登录请求 这很好,除了一个非常重要的问题: Https站点返回一个登录用户面板

我们正在尝试在页面上创建一个ajax登录控件。问题是,我们希望它是安全的,所以当你在我们的主页上,f.e。http://page.com 如果您想登录,那么使用jquery和您的登录名和密码的ajax请求将https://page.com/sign-in/ 行动

问题是,由于跨域安全,通常我们不能发送这样的请求。在singnin操作中,我们将头访问控制Allow Origin的值指向http站点url,这样它就可以发出登录请求

这很好,除了一个非常重要的问题:

Https站点返回一个登录用户面板,我们用它替换登录表单。它还返回一个典型的.net身份验证cookie。cookie不想在我们的页面上解决-我猜我们的http页面不知何故不想接受来自https操作的cookie

当我们在其他https站点上尝试登录时,它工作正常,cookie已设置

我们如何避免这种情况?我们如何允许https操作在http站点上设置cookie


这仍然是相同的域名,只是不同的协议。

正如一些用户所说,这是一个不安全的解决方案。昆廷指出,这是一种易受中间人攻击的攻击,因此解决方案是将整个页面放在https域上,而不按内容类型区分协议。

相同域和不同协议=跨源请求。为什么不让主页也使用https呢?我想在我的门户网站的每个页面上都有一个登录表单,但我仍然不认为在所有页面上都使用https是合理的。。。他们中的大多数根本不需要安全性…@ukaszW.pl没有理由不让整个网站使用HTTPS。开销是无穷小的,对于这样的情况更简单,例如,我担心它可能会对SEO+产生影响。现在,由于一个控件,使用整个页面https的决定太大了…不要这样做-如果包含表单的页面通过HTTP发送,那么它很容易受到中间人攻击。在SSL隧道对JavaScript进行加密之前,可能会注入JavaScript并窃取密码。只要需要安全,就通过HTTPS为整个站点提供服务