背景:我在做一个数据查询系统,有些高敏感数据信息,正常访问项目是无权限查看的。唯一的查看途径就是通过Citrix去访问。这时候就需要通过获取客户端地址(X-Forwarded-For)来判定是否Citrix环境。
问题:项目是微前端架构,属于主应用中的一个子应用,前端资源和接口请求走了几层nginx(我的项目无权改配置),所以X-Forwarded-For中会有多个值,判断不够准确。
过程:查了不少文章,对X-Forwarded-For多了一丝理解,分享一个觉得很不错的文章:X-Forwarded-For 客户端 IP 伪造过程及防范_x-forwarded-for 伪造_笑忘哭的博客-CSDN博客
最终方案:最终我们选择了拿到所有的X-Forwarded-For值,看是否包含Citrix的ip来解决!