【发布时间】:2017-05-19 22:32:19
【问题描述】:
我有一份 Excel 报告。它包含超链接。如果我点击一个超链接,那么我们的旧管理系统就会打开相关页面。我们基于 Laravel 5.3 构建的新系统将用户发送到登录页面,然后到主页。这很烦人。
如果我查看我看到的网络流量:
192.168.99.1 - - [05/Jan/2017:10:47:33 +0000] "HEAD /ticket/44 HTTP/1.1" 302 0 "-" "Microsoft Office Excel 2013"
192.168.99.1 - - [05/Jan/2017:10:47:34 +0000] "HEAD /auth/login HTTP/1.1" 200 0 "-" "Microsoft Office Excel 2013"
192.168.99.1 - - [05/Jan/2017:10:47:34 +0000] "GET /ticket/44 HTTP/1.1" 302 380 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; ms-office)"
192.168.99.1 - - [05/Jan/2017:10:47:35 +0000] "GET /auth/login HTTP/1.1" 200 5990 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; ms-office)"
192.168.99.1 - - [05/Jan/2017:10:47:36 +0000] "GET /auth/login HTTP/1.1" 302 356 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
192.168.99.1 - - [05/Jan/2017:10:47:38 +0000] "GET /home HTTP/1.1" 200 36843 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
/ticket/44 是一个有效的 uri - 我可以手动将其从 Excel 中复制出来,然后将其粘贴到地址栏中并打开正确的页面。从 Excel 中执行此操作,但验证失败并重定向到主页。
您会注意到 Excel(非常正确)生成 HEAD 请求,而不是 GET 请求;但是,这对直接页面加载没有影响。
那么,为什么 Excel HEAD 请求无法通过身份验证并在标准 GET 请求加载页面时将我带到主页?
针对问题进行更新:
看起来它正在通过三个处理程序 - excel(步骤 1-2)、ms-office(步骤 3-4)和最后 chrome(步骤 (5-6)。到那时它已经丢失了数据。所以问题变成了中间步骤是什么?
【问题讨论】:
-
看起来 Excel 是在发出第一个 Web 请求,而不是一开始就在浏览器中打开链接。