首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

在校园网环境下被“劫持”了 HTTP 请求

  • 25-04-22 15:21
  • 4380
  • 12845
juejin.cn

本篇文章的起因是本人偶然在连接校园网的情况下去访问自己的网站,结果发现自己的域名访问到的竟然不是自己的网站,我的第一个反应是 我不会这么惨吧,建好的网站这么快就被攻击了 T_T , 但是经过我机智的大脑思考以及 AI 的辅助答疑,本人迅速发现了槽点,那就是 您的校园网正在“攻击”您的网站

问题产生原因

正如前言所说,表面上是由于校园网“劫持”了 HTTP 请求,但是问题又来了,我的网站已经是 HTTPS 请求了,为什么还是被“劫持”呢,所以我去研究了一下校园网“劫持”的原理

  • 🌐 HTTP 请求被篡改

    如果你的网站是 HTTP(非加密),校园网的网关设备可以:

    • 拦截你的 HTTP 请求
    • 在返回数据中插入广告、弹窗、脚本等
    • 直接跳转到别的网站

      因为 HTTP 的数据是明文传输的,任何经过的节点都能看到并修改内容。

  • 🧩 DNS 劫持(域名劫持)

    即使你的网站是 HTTPS,如果使用的是校园网提供的 DNS,它可能会:

    • 把你请求的域名(如 my.com)解析到 -错误的 IP 地址

    • 使你访问的是一个伪造的网站或网关页面,而-不是你的真实服务器

    • DNS 查询时没有加密(除非你启用了 DNS over HTTPS),所以容易被篡改。

  • 🛑 中间人攻击(MITM) 部分高校使用“透明代理”或伪造 CA 证书的手段:

    • 伪造你网站的 HTTPS 证书

    • 让浏览器访问的是一个看起来正常但实际上被监控/篡改的站点

    • 这种情况会出现“证书不受信任”、“连接不安全”的提示。(本人遇到的可能就是这个情况)

综上所述,这些都是可能被“劫持”的原因,这毕竟是校园网嘛,有点流量统计、监控数据之类的操作都可以理解。但是!!不能让在学校里使用校园网的渴望知识的大学生无法访问网站从而学不到知识吧 🤔😏,所以我又去研究了一些防“劫持”的方案

防止被校园网“劫持”的方案

访问他人网站

如果你是一只渴望获取知识的大学生,以下有两个方法可以防止劫持:

  • VPN 或代理:使用加密隧道来绕过校园网络的劫持。

  • 更换网络:既然被校园网劫持了那就不走校园网不就好了 😎

自己的网站

如果你是希望分享知识的技术博主,下面是我尝试的解决方案:

  • 强制 HTTP 跳转到 HTTPS:由于某些原因,本人之前配置的跳转方法好像不太成功,导致可以被劫持,现在重新配置了一下

    这个方案我尝试之后发现仍然无法解决被劫持问题,仍需寻找其他方案

    conf
    代码解读
    复制代码
    # HTTP转HTTPS server { listen 80; server_name 你的域名; return 301 https://$host$request_uri; # http跳转https } # HTTPS服务 server { listen 443 ssl; server_name 你的域名; default_type 'text/html'; charset utf-8; #---------------- 本人是通过 certd 自动部署的证书,有兴趣的可以去了解 ------------- # SSL证书配置 ssl_certificate /etc/letsencrypt_certd/happlay.crt; # 指定SSL证书文件路径 ssl_certificate_key /etc/letsencrypt_certd/key/cert.key; # 指定SSL私钥文件路径 # SSL会话设置 ssl_session_timeout 5m; # SSL会话缓存超时时间为5分钟 # 协议与加密套件配置 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 启用TLS 1.0/1.1/1.2协议(注:建议禁用TLSv1和TLSv1.1以提高安全性) ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 指定加密套件,优先使用前向保密(ECDHE)和强加密算法 ssl_prefer_server_ciphers on; # 优先使用服务端定义的加密套件顺序 location / { root /usr/share/nginx/html/build; index index.html index.htm; try_files $uri $uri/ /index.html; } }
  • 启用 HSTS:告诉浏览器以后只通过 HTTPS 访问,防止下一次用 HTTP 被劫持。(但是这种方法仍然无法解决在校园网的环境下正常访问对应网站,有兴趣的可以自行研究,此处就不给对应配置了)

  • 使用 Cloudflare 作为反向代理 🌐:

    Cloudflare 提供了免费的反向代理服务,能有效避免 DNS 劫持问题。通过 Cloudflare 代理流量,你的流量将经过其加密网络,并且 DNS 查询也会被加密。

    配置步骤: 注册并配置你的域名在 Cloudflare。

    在 Cloudflare 设置里启用 DNS over HTTPS(DoH)和 自动 HTTPS 重定向。

    将你的网站 DNS 指向 Cloudflare 提供的 IP,它会代替你的原始 DNS 解析,确保安全。

    然后把你的域名以类型为 A ,内容为 IP 地址解析到 Cloudflare 的 DNS 记录中

    注:如果再次访问网站显示重定向次数过多,是由于 nginx 中配置了 return 301 https://$host$request_uri; 这条语句。解决办法是: Cloudflare 控制台 -> 进入你的站点 -> 点击左侧菜单栏「SSL/TLS」 -> 「Overview(概览)」页面 -> 把 SSL 模式设置为 Full 或 Full (Strict)

好了,到目前为止可以恭喜你了 🎇,不论是访问他人网站还是作为自己的网站,现在校园网已经“劫持”不到你了,你可以畅快的享受知识了!😏

注:本文转载自juejin.cn的happlay71的文章"https://juejin.cn/post/7495598558198562854"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

143
阅读
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top