当前位置: 首页 > news >正文

记录工作中遇到的问题(持续更新~)

跨域问题 2024-09-15

【前提】:前端配置了nignx转发,后端设置了跨域拦截,对http://xxxx做了允许跨域。但是访问http://xxx被拦截了,返回403 Forbidden。同样的配置放在另外一套部署的环境上就完全没问题,http://xxx可以访问。经过反复排查,配置对比,仍是没有找到原因。最后修改后端跨域配置允许https://xxx的跨域请求,结果访问http://xxxx就可以了,简直玄学~

了解一下什么是跨域:

       跨域请求是指在Web开发中,当一个Web应用程序试图通过Ajax等技术向一个不同源的URL发送请求时,会受到同源策略的限制。这里的“源”指的是协议、域名和端口号三者的组合。如果这三者中有任何一个不同,就视为跨域请求。

排查范围:

  • 响应头:确保Access-Control-Allow-Origin、Access-Control-Allow-MethodsAccess-Control-Allow-Headers被正确地添加到HTTP响应的头部中。
  • 预检请求:对于某些复杂的跨域请求(如带有自定义HTTP头或方法的请求),浏览器会首先发送一个OPTIONS请求的预检请求。检查服务器日志以查看是否收到了OPTIONS请求,并返回正确的CORS头部。
  • 浏览器拦截:浏览器的安全策略可能会阻止某些跨域请求,即使服务器返回了正确的CORS头部。
  • 第三方服务:如果请求经过了第三方服务(如CDN、负载均衡器)或中间件(如反向代理),这些服务或中间件可能会修改或删除CORS头部。

什么情况下http请求传到后端会变成https

  • 重定向:服务器(如Apache、Nginx等)可以配置重定向规则,将HTTP请求自动重定向到HTTPS。
  • 中间层:如果HTTP请求首先通过反向代理或负载均衡器,这些中间设备也可以配置为将HTTP请求转换为HTTPS请求,然后再转发给后端服务器。
  • HSTS:当网站支持HTTPS,并且已经向浏览器发送了HSTS策略时,浏览器会自动将后续的所有HTTP请求转换为HTTPS请求,而无需服务器或中间设备的干预。HSTS是一种安全特性,旨在保护网站免受中间人攻击等威胁。
  •  网络环境:在某些网络环境中,如企业内网或政府网络,可能会实施网络安全策略,要求所有网络流量都必须通过HTTPS进行加密传输。在这种情况下,即使原始请求是HTTP,也可能在网络传输过程中被自动转换为HTTPS。

原因:翻了一下日志,发现是将http加入配置后没有重启服务,下午加https后重启了服务(嗐)。


http://www.mrgr.cn/news/29731.html

相关文章:

  • Kubernetes Ingress
  • C++面试3
  • 根据 IP 地址进行 VPN 分流(详细,亲测,通用)
  • 深度学习 之 常见损失函数简介:名称、作用及用法
  • vue 2表格滚动加载
  • 【VUE】快速上手
  • 心觉:不能成事的根本原因
  • 龙海家园的免费停车点探寻
  • 【C语言】带你手把手拿捏指针(3)(含转移表)
  • 中、美、德、日制造业理念差异
  • Linux常见查看文件命令
  • 数学学习记录
  • vue获取最近7天时间;获取任意时间段时间
  • Flutter 优化技巧分享
  • 基于python+django+vue的医院预约挂号系统
  • Mobile net V系列详解 理论+实战(1)
  • python中网络爬虫框架
  • 拦截器Interceptor
  • 一些学习three的小记录
  • A股上市公司企业创新能力、质量、效率-原始数据+dofile+结果(2006-2023年)