如何检测并静默丢弃服务器收到的跨源请求?
拦截跨源非顶级请求的服务器端方案疑问
问题背景
在CSRF、BREACH、XS-Leaks子集等攻击场景中,跨源请求是核心攻击要素。我需要在基于Node.js的Express应用(或通用服务器方案)中,静默丢弃以下类型的非顶级跨源请求:
- 来自
<form>、<img>、<script>、<link>标签发起的请求 - 通过
fetch()、XMLHttpRequest发起的请求 - iframe内
<a>标签发起的请求
我已尝试或了解过几种方案,但均存在局限性:
OriginHTTP头:不会随<img>标签的请求发送,无法覆盖所有场景RefererHTTP头:攻击者可轻易省略该头;若以此验证「Referer存在且为本站」,会误拦截全新GET请求以及来自其他站点的顶级<a>导航请求Cross-Origin-Resource-Policy: same-site及相关补充响应头:仅能让浏览器拒绝加载内容,但无法阻止攻击者通过JS计时、响应大小(中间人视角)窃取信息,实际防护价值有限
核心疑问
- 是否存在我忽略的、可明确标识跨源请求的HTTP头?
- 是否有浏览器特定的标识头可用于识别这类请求?
- Firefox或Chrome近期是否有引入此类标识头的计划?
内容的提问来源于stack exchange,提问作者hellou
相关产品推荐
相关产品推荐

