Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

fetch API 在同源范围内修改请求的 referer

  Referer 是一个描述请求来路的 HTTP 头,是服务器常用的过滤指标,经常被用来多付一些 CSRF 攻击。在以前 XHR 时代,Referer 是非常靠谱的,因为 XHR 对象不允许前端修改请求头中的 Referer 字段,要么没有,要么一定正确。而且这个特性是从古老的 IE 版本就开始实现的。
var xhr = new XMLHttpRequest(); xhr.open('GET', ''); xhr.setRequestHeader('Referer', '/hehe'); // Error Refused to set unsafe header "Referer"   现在 fetch API 打破了这个惯例,它允许在同源范围内修改 referer 字段。
fetch('', { referrer: '/hehe' });
  注意 fetch API 中使用的名称是 referrer(正确的拼写),HTTP 中使用的是 referer (错误的拼写)。
  当然,也仅仅是「同源范围内」而已,如果试图写一个超出范围的值同样会抛出异常。
fetch('', { referrer: 'http://xxx.xx' }).catch(reason => { console.error(reason); }); TypeError: Failed to execute 'fetch' on 'Window': The origin of 'http://xxx.xx' should be same as 'http://localhost'
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^