我使用IE11向站点A发出get请求:
GET http://www.test.com/?documentId=ef746317-7711-4458-8873-a73700fc1b85 HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-US
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729)
Connection: Keep-Alive
Host: www.test.com我收到一个带有2个cookie的重定向:
HTTP/1.1 302 Found
Date: Wed, 15 Mar 2017 23:48:00 GMT
Content-Type: text/html; charset=UTF-8
Location: https://www.newSite.com/test/Edit/ef746317-7711-4458-8873-a73700fc1b85
Set-Cookie: Auth=EAAAAIQfMoK32BNjBypXapcJppWc==; path=/; secure
Set-Cookie: Auth=EAAAAN+xPT6eioV8LESTR6CViGIvc834gP==; path=/; secure
Cache-Control: private, s-maxage=0
Server: Microsoft-IIS/10.0
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 4.0
X-Powered-By: ASP.NET
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"
P3P: policyref="/w3c/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
Content-Length: 0IE似乎遵循重定向并执行GET,但正如您所看到的,它并没有发送回cookie:
GET https://www.newSite.com/test/Edit/ef746317-7711-4458-8873-a73700fc1b85 HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-US
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729)
Connection: Keep-Alive
Host: www.newSite.com当然还有401:
HTTP/1.1 401 Unauthorized
Content-Type: text/html
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Wed, 15 Mar 2017 23:48:00 GMT
Content-Length: 1293
<HTML>Blah blah blah access denied error</HTML>我尝试添加P3P头来强制IE在重定向中发送cookies,但没有成功。我读到在从HTTP转到HTTPS时IE在重定向中发送cookies可能会出现问题,或者因为“安全”cookies正被发送回HTTP上的浏览器,当重定向到HTTP时,它会看到不同的域和阻塞。我不能更改网站,因为它们是供应商,但我可以更改发送回IE11的302与我正在工作的中间件接口。关于如何在重定向上欺骗/强制IE发回这些cookie,您有什么想法吗?
更新1:我已经试过火狐52,IE11和Chrome了。没有浏览器接受302并将get与cookie一起发送回来。必须有人理解cookie的重定向是如何工作的。没有回应让我怀疑这个网站是否接触到了合适的人。
发布于 2017-03-24 03:07:28
我用一种黑客的方式解决了我的问题。由于浏览器不会在302重定向中转发cookie,所以我只发回了一个小页面来代替我的界面软件进行发布。
<!DOCTYPE html>
<html>
<head>
<title>Redirect</title>
</head>
<body>
<form action="https://testAPI.test.com/" method="POST">
<input name="UserName" value="Test APIUser"/>
<input name="UserEmail" value="test@test.com"/>
<input name="PatientId" value="1d11eb2e-2606-485e-ad5d-a70c00daa37a"/>
<input name="Timestamp" value="Mon, 20 Mar 2017 19:11:24 GMT"/>
84c6-a7210111648b"/>
<input name="Token" value="MRVp/pBRBJ08F8cYMavfL8 ="/>
</form>
<script language="javascript"> window.setTimeout('document.forms[0].submit()', 0);</script>
</body>
</html>发布于 2020-05-11 22:07:48
您可以禁用保护模式。保护模式旨在防止恶意软件利用Internet Explorer 11中的漏洞。此模式还可能阻止cookies,具体取决于当前设置。
打开Internet Explorer 11。单击工具,然后选择Internet选项。转到“安全”选项卡。在“此区域的安全级别”下,清除“启用保护模式(需要重新启动Internet Explorer)”复选框。单击OK。关闭Internet Explorer 11,然后重新启动它。
https://stackoverflow.com/questions/42823147
复制相似问题