我想知道为什么不能使用 setRequestHeader设置cookie标头。是否有任何特定原因,或者仅仅是浏览器本身添加了它们,所以这些标头被禁用了?有什么安全问题吗?
- 编辑
我正在研究 node.js 并使用了该xmlhttprequest
模块。以下是测试代码:
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.withCredentials = true;
xhr.setRequestHeader('Cookie', "key=value");
xhr.send(null);
在这里,我需要将 cookie-header 设置为node.js' xmlhttprequest
不显式添加 cookie-header(就像浏览器一样)。尝试这样做时,xmlhttprequest
会出现错误“ Refused to set unsafe header
”。
虽然我找到了一个补丁并成功发送了 cookie-header。但是想知道为什么禁用设置 cookie-header ?无论我在哪里阅读,都发现它是数据完整性和安全性所必需的,但是在这种情况下可以破坏哪些安全性,却没有提到任何地方。我想评估这个数据完整性问题是否对 node.js 应用程序也有效,如果我使用我的补丁。