我们正在尝试在我们的页面上创建一个控件中的ajax标志。问题是,我们希望它是安全的,所以当你在我们的主页上时,f.e。 http: // page.com并且您想要登录,然后使用您的登录名和密码的ajax请求(使用jquery)将转到 https: //页面。 com / sign-in / action。
问题是,由于跨域安全性,通常我们无法发送这样的请求。在我们的singnin操作中,我们将标题Access-Control-Allow-Origin
的值指向我们的http网站网址,因此它可以发出登录请求。
这很好,除了一个非常重要的问题:
Https网站返回用户面板中的一个登录信息,我们将其替换为登录表单。它还返回一个cookie(典型的.net身份验证cookie)。 cookie不想在我们的页面上解决 - 我想我们的http页面不想接受来自https动作的cookie ......
当我们在其他某个https网站上,并尝试登录时,它工作正常并设置了cookie。
我们怎样才能避免这种情况?我们如何允许https操作在http网站上设置cookie?
这仍然是相同的域名,只是不同的协议..
答案 0 :(得分:0)
正如一些用户所说,事实证明这是一种不安全的解决方案。 Quentin指出,这对于中间人攻击是可以攻击的,因此解决方案是将整个页面放在https域上,并且不要根据内容的类型区分协议。