Web 常见的攻击方式有哪些?

常见的 Web 攻击方式有以下几种:

  • 跨站脚本攻击(XSS 攻击)

  • 跨站请求伪造(XSRF 攻击)

  • SQL 注入

XSS 攻击

MDN 定义如下:

跨站脚本攻击(Cross-site scripting,XSS)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。若受害者运行这些恶意代码,攻击者就可以突破网站的访问限制并冒充受害者。

简单来说,跨站脚本攻击利用恶意脚本发起攻击,通常这些恶意脚本可以任意读取 cookie、session tokens,或其他敏感网站信息。以下两种情况容易发生 XSS 攻击:

  • 从一个不可靠的链接进入到一个 Web 应用程序。

  • 没有过滤掉恶意代码的动态内容被发送给 Web 用户。

如果要过滤恶意代码,提交给后端,就能尽可能避免此类攻击。

DOM 中的内联事件监听器,如 location、onclick 等,a 标签的 href 属性,JavaScript 的 eval()、setTimeout()、setInterval() 等,都能把字符串作为代码运行。

如果用 Vue/React 技术栈,并且不使用 v-html/dangerouslySetInnerHTML 功能,就能在前端 render 阶段避免 innerHTML、outerHTML 的 XSS 隐患。

XSRF 攻击

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。

如果你登录了 bank.com 网站,此时,你有了来自该网站的身份验证 cookie。浏览器将会在你的每次请求上带上 cookie,以便识别你,执行所有的敏感财务操作。

当你在另一个窗口中浏览网页时,不小心访问了一个 eval.com 的网站,该网站有一段提交表单的 JavaScript 代码: ,它含有交易字段。这时候,提交表单请求虽然由 eval.com 发起,当它携带了 bank.com 的 cookie,因此验证通过,攻击就完成了。

那么我们怎么预防呢?方案有:

  • 阻止不明外域的访问

    • 同源检测
    • Samesite cookie
  • 提交时要求附加本域才能获取的信息

    • CSRF Token
    • 双重 cookie 验证

SQL 注入

SQL 注入攻击,是通过将恶意的 SQL 查询或添加语句插入到应用的输入参数中,再在后台 SQL 服务器上解析执行进行的攻击。比如,后端使用 SQL 查询时,篡改的查询参数或其他 SQL 代码,就会造成 SQL 注入攻击。

可以使用预编译方式或者 ORM 框架避免此类攻击发生。

相关推荐
kyriewen8 分钟前
我review了一份Vibe Coding写的前端代码——能跑,但5个地方迟早要命
前端·javascript·ai编程
REDcker1 小时前
Cesium三维WebGIS入门详解
前端·gis·web·cesium·webgis
0暗影流光01 小时前
十倍效能提升——Web 基础研发体系的建立
前端
前端一课1 小时前
用Agent Skill重构代码:300行缩至30行的实战教程
前端
腻害兔1 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:IM 即时通讯模块,一个被低估的「全功能聊天系统」
java·前端·vue.js·产品经理·ai编程
奎叔2 小时前
Flutter 异常处理体系:从捕获、转换到恢复
前端
心念枕惊2 小时前
.NET CORE 授权进阶-角色、策略与动态权限实现
java·前端·.netcore
小徐_23332 小时前
寓言故事一则:狗猛酒酸
前端·ai编程
xiaobaoyu2 小时前
vue2+element开发中问题和解决方式
前端
KaMeidebaby2 小时前
卡梅德生物技术快报 | 核酸适配体文库测序:核酸适配体文库测序的技术原理、实验流程与数据解析
前端·网络·数据库·人工智能·算法