我的 IIS 托管网站定期出现问题,其中一个客户端浏览器(Google Chrome 77/78 或更高版本)突然开始每秒向我的网站提交数十个针对同一页面的请求。
对于我的应用程序,该用户始终是有效的、经过身份验证的用户。这些请求似乎也不遵循我可以从日志中确定的任何标准模式。例如,这不是授权重定向问题,它几乎就像浏览器发送了数十个由用户以某种方式发起的请求。例如,多次打开我们页面的书签版本。
查看请求详细信息,我可以看到以下获取标头:
HTTP_SEC_FETCH_USER: ?1
HTTP_SEC_FETCH_SITE: none
HTTP_SEC_FETCH_MODE: navigate
据我所知,这意味着该操作是用户发起的,并且就 ajax 请求或页面刷新而言,它不是来自我自己的应用程序。例如,当我在 Chrome 的新选项卡中打开页面时,我只能获取上述获取标头的组合。
这是否真的与 Chrome 浏览器本身有关?我无法在开发中复制这个问题,但这种情况已经发生过几次了,我不知道从哪里开始确定原因。
正如其他用户在评论中指出的那样,这实际上可能是由移动 Chrome 预测加载机制引起的。
Android 版 Chrome 的最新版本 (78.0.3924.108) 尝试了预测加载,在选择链接进行预取时更改规则。这可能会导致在访问您的网站时没有任何用户输入的情况下“加载”任意链接(发出 GET 请求、扭曲统计数据并导致该操作产生任何副作用)。
这已经在过去一周推出,并在许多不同的场景中引起了许多问题(注销用户、点击付费或聚合器链接等)
有关 Chromium 问题跟踪器的更多信息:https://bugs.chromium.org/p/chromium/issues/detail?id=1027991 https://bugs.chromium.org/p/chromium/issues/detail?id=1027991
通过预取发出的请求发出 aPurpose: prefetch
header - 至少在 Chrome 中,其他浏览器可能会发出其他标头
此后,该问题已于今天上午(2019 年 11 月 25 日)得到修复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)