我正在尝试用JavaScript编写RSS feed使用者,但不幸的是,大多数feed似乎并未在其响应中显式设置access-control-allow-origin头(即使据我了解,数据是公开的)消耗/抓取)。
我的问题是:有鉴于此,是否有办法在javascript中加载这样的数据(除了使用服务器端代理或将项目转换为浏览器插件外)
例如像这样:
fetch('http://rss.slashdot.org/Slashdot/slashdotMain', {
crossOrigin: false,
xhrFields: {
withCredentials: false
}
})).then(function(response){
console.log('Got a response!', response);
});
我的问题的第二部分是:为什么不允许这样做?
例如:假设我出于任何原因导航到域wild-website.com。它将包含withCredentials: false
的简单Ajax GET请求发送到my-bank.com。 my-bank.com处理此请求,但随后浏览器阻止了响应。
阻止对此获取请求的响应如何提高安全性?
withCredentials: false
指令发送cookie或授权标头。经典的XSRF方案已经被阻止-此请求就像是互联网上的任何其他用户(包括恶意用户)已经加载了该资源一样。那么,在这里阻止响应实际上有什么好处?
我想我正在寻找的答案是这样的:“如果还允许简单的withCredentials: false
请求颠覆相同的原始策略,那么坏角色可以执行X。”
关于X是什么的任何想法?