如何获取访问我方站点的第三方网站名称或URL地址?
跨站弹窗调用场景下获取请求来源的方案
核心结论
大部分常规场景下可以获取到第三方发起站点的URL/站点名,核心依赖HTTP标准请求头Referer。
具体实现说明
- 浏览器默认行为:当123Website通过弹窗web视图发起对
mywebsite.com/ControllerA/functionA的请求时,会自动在请求头中附加Referer字段,字段值就是发起请求的123Website对应页面的URL,你可以直接在functionA的后端逻辑中读取该请求头,匹配预存的站点映射即可识别出请求来自123Website。 - 例外情况(无法拿到完整来源信息):
- 123Website配置了严格的
Referrer-Policy响应头,若策略值为no-referrer则请求不会携带Referer;若为origin-when-cross-origin则仅会返回123Website的源站地址(如https://www.123website.com),不会返回完整页面路径 - 123Website为HTTPS站点,而你方接口走HTTP协议时,浏览器默认不会携带Referer头
- 123Website配置了严格的
优化方案
如果你们和123Website属于合作关系,可要求对方在调用你方接口时额外携带约定好的签名参数,该方案的来源识别准确性远高于依赖浏览器自动发送的Referer,可避免Referer被篡改、被限制发送的问题。
内容的提问来源于stack exchange,提问作者lauwis premium
相关产品推荐
相关产品推荐

