web常见的攻击方式有哪些?如何防御?

news2025/5/25 15:36:05

Web常见攻击方式及防御策略

SQL注入 (SQL Injection)

详细解析:
SQL 注入是一种利用应用程序未正确验证用户输入的漏洞,通过向应用传递恶意 SQL 查询来操纵数据库的行为。这种攻击可能导致敏感数据泄露、篡改或删除。

步骤:

  1. 攻击者找到可接受动态参数的应用程序入口点。
  2. 输入恶意 SQL 语句作为查询的一部分。
  3. 数据库执行该恶意查询,可能暴露敏感信息或允许未经授权的数据修改。

示例:
假设有一个登录表单,其后台代码如下:

$query = "SELECT * FROM users WHERE username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "'";

如果用户名字段被设置为 admin' --,则最终查询变为:
SELECT * FROM users WHERE username='admin' -- AND password=''

这会绕过密码验证。

防御方法:

  • 使用预处理语句(Prepared Statements)和参数化查询。
  • 对所有外部输入进行严格的校验和清理。
  • 避免显示详细的错误消息给终端用户。

跨站脚本攻击 (XSS)

详细解析:
跨站脚本攻击是指攻击者将恶意 JavaScript 或其他类型的客户端脚本嵌入网页中,在受害用户的浏览器环境中运行这些脚本。它分为反射型 XSS 和存储型 XSS。

步骤:
对于 存储型 XSS, 参考引用中的描述:

  1. 攻击者将恶意代码提交到目标网站的数据库中。
  2. 用户访问页面时,服务器从数据库提取内容并将其渲染成 HTML 响应。
  3. 浏览器加载此响应后执行嵌入的恶意脚本。

示例:
在留言板功能中,攻击者发布一条包含 <script>alert('Hacked')</script> 的评论。当其他用户浏览这条留言时,他们的浏览器会弹出警告框。

防御方法:

  • 实现上下文感知编码(Context-Aware Encoding),例如 HTML 编码、JavaScript 编码等。
  • 启用 Content Security Policy (CSP),限制哪些资源可以在页面上加载和执行。
特点描述预防方法
利用了HTML标签特性将恶意脚本插入到正常页面中被执行上下文编码, CSP

跨站点请求伪造 (CSRF)

详细解析:
CSRF 是一种强制已认证用户在其不知情的情况下发起恶意请求的技术。由于大多数 Web 应用依赖 cookies 来维持身份验证状态,因此 CSRF 攻击能够轻易伪装合法操作。

步骤:

  1. 攻击者诱导受害者点击链接或加载特定图像。
  2. 此动作触发了一个指向易受攻击网站的有效 HTTP 请求。
  3. 如果受害者当前处于登录状态,则该请求会被视为有效命令而被执行。

示例:
假设有银行转账接口 /transfer?amount=100&toAccount=attacker_account, 当用户访问了攻击者的恶意站点时,可能会自动发出这样的 GET 请求,从而完成资金转移。

防御方法:

  • 添加一次性令牌至每个重要请求,并由服务器端验证。
  • 检查 Referer 头部以确认请求来源可信度。

文件上传漏洞

详细解析:
文件上传漏洞发生在开发者未能充分过滤用户上传的内容类型及时机情况下发生的安全隐患。一旦成功利用,就有可能实现远程代码执行(RCE)或其他破坏行为。

步骤:

  1. 提供一个看似无害却隐藏危险逻辑的文件(比如PHP木马).
  2. 成功上传之后尝试让服务端解释执行.

示例:
假如上传机制只简单检查扩展名为 .jpg 即认为安全,但实际上内部仍可能是 PHP 脚本形式存在的话,那么就可以轻松突破防线。

防御方法:

  • 设置白名单限定允许上传的具体 MIME 类型.
  • 执行额外扫描检测潜在威胁成分.
  • 不直接保留原始命名路径以防目录遍历风险.
特点描述预防方法
关键在于文件性质判断失误导致非法文件得以存留并生效白名单控制,MIME匹配,病毒查杀工具辅助

总结表格
攻击名称特点描述预防方法
SQL注入动态构建SQL字符串黑客可以通过构造特殊字符组合影响DB交互过程参数绑定/预编译;严格输入验证
XSS客户端脚本植入在网页内嵌入恶意JS片段造成连锁反应输出转义;启用CSP
CSRF冒充真实用户提交指令让授权下的账户无意间做出违背意愿的动作加密token随附关键交易环节
文件上传漏洞错误识别所接收文档属性授权后的不当权限授予使得任意格式均可落地设定明确许可列表;二次审查

图表总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣:《螺旋矩阵》系列题目

今天做了一下螺旋矩阵主题的一系列题目 即力扣中的相似题目 还是有所感悟的 接下来一一回顾&#xff1a; 第一题&#xff1a; 59. 螺旋矩阵 II - 力扣&#xff08;LeetCode&#xff09; 这题让我们生成一个正方形的矩阵&#xff0c;注意是正方形&#xff0c;不是长方形&a…

发电厂进阶,modbus TCP转ethernet ip网关如何赋能能源行业

案例分享&#xff1a;稳联技术modbus TCP转ethernet ip网关wl-abc004赋能&#xff0c;发电厂自动化改造&#xff0c;推动能源行业智能化升级 随着全球能源结构转型和“双碳”目标的推进&#xff0c;传统发电厂&#xff08;如火电、水电、生物质发电&#xff09;正面临严峻挑战&…

深入了解linux系统—— 操作系统的路径缓冲与链接机制

前言 在之前学习当中&#xff0c;我们了解了被打开的文件是如何管理的&#xff1b;磁盘&#xff0c;以及ext2文件系统是如何存储文件的。 那我们要打开一个文件&#xff0c;首先要先找到这个文件&#xff0c;操作系统又是如何去查找的呢&#xff1f; 理解操作系统搜索文件 …

华为2025年校招笔试真题手撕教程(一)

一、题目 输入&#xff1a; 第一行为记录的版本迭代关系个数N&#xff0c;范围是[1&#xff0c;100000]; 第二行到第N1行&#xff1a;每行包含两个字符串&#xff0c;第一个字符串为当前版本&#xff0c;第二个字符串为前序版本&#xff0c;用空格隔开。字符串包含字符个数为…

第9.2讲、Tiny Decoder(带 Mask)详解与实战

自己搭建一个 Tiny Decoder&#xff08;带 Mask&#xff09;&#xff0c;参考 Transformer Encoder 的结构&#xff0c;并添加 Masked Multi-Head Self-Attention&#xff0c;它是 Decoder 的核心特征之一。 1. 背景与动机 Transformer 架构已成为自然语言处理&#xff08;NLP…

基于PCRLB的CMIMO雷达网络多目标跟踪资源调度

针对分布式组网CMIMO雷达多目标跟踪(MTT)场景&#xff0c;博客分析了一种目标-雷达匹配方案与功率联合优化算法。在采用分布式组网融合架构的基础上&#xff0c;推导包含波束和功率分配的后验克拉美罗界(PCRLB)。随后&#xff0c;将该效用函数结合CMIMO雷达系统资源&#xff0c…

AtCoder Beginner Contest 407(ABCDE)

A - Approximation 翻译&#xff1a; 给你一个正整数 A 和一个正奇数 B。 请输出与实数 的差最小的整数。 可以证明&#xff0c;在约束条件下&#xff0c;这样的整数是唯一的。 思路&#xff1a; 令。比较来判断答案。 实现&#xff1a; #include<bits/…

VILT模型阅读笔记

代码地址&#xff1a;VILT Abstract Vision-and-Language Pre-training (VLP) has improved performance on various joint vision-andlanguage downstream tasks. Current approaches to VLP heavily rely on image feature extraction processes, most of which involve re…

掌握 npm 核心操作:从安装到管理依赖的完整指南

图为开发者正在终端操作npm命令&#xff0c;图片来源&#xff1a;Unsplash 作为 Node.js 生态的基石&#xff0c;npm&#xff08;Node Package Manager&#xff09;是每位开发者必须精通的工具。每天有超过 1700 万个项目通过 npm 共享代码&#xff0c;其重要性不言而喻。本文…

OpenCV CUDA模块特征检测与描述------一种基于快速特征点检测和旋转不变的二进制描述符类cv::cuda::ORB

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::ORB 是 OpenCV 库中 CUDA 模块的一部分&#xff0c;它提供了一种基于快速特征点检测和旋转不变的二进制描述符的方法&#xff0c;用于…

Awesome ChatGPT Prompts:释放AI对话潜力的开源利器

项目概览 Awesome ChatGPT Prompts 是由土耳其开发者 Fatih Kadir Akın 发起的开源项目,托管于 GitHub,旨在通过精心设计的提示词模板(Prompts)优化用户与 ChatGPT 的交互体验。项目以 Markdown 和 CSV 格式管理模板,无需复杂编程语言,但需文本处理能力,目前已在 GitH…

PP-YOLOE-SOD学习笔记2

一、解析X-Anylabeling标注后的json格式问题 最近在使用自动标注工具后json格式转化过程中&#xff0c;即标注框的四点坐标转换为两点坐标时&#xff0c;发现json格式的四点顺序是按顺时针方向开始的&#xff0c;那么在转换其实就是删除2、4坐标或者1、3坐标即可。 二、数据集…

算法学习——从零实现循环神经网络

从零实现循环神经网络 一、任务背景二、数据读取与准备1. 词元化2. 构建词表 三、参数初始化与训练1. 参数初始化2. 模型训练 四、预测总结 一、任务背景 对于序列文本来说&#xff0c;如何通过输入的几个词来得到后面的词一直是大家关注的任务之一&#xff0c;即&#xff1a;…

win10使用nginx做简单负载均衡测试

一、首先安装Nginx&#xff1a; 官网链接&#xff1a;https://nginx.org/en/download.html 下载完成后&#xff0c;在本地文件中解压。 解压完成之后&#xff0c;打开conf --> nginx.config 文件 1、在 http 里面加入以下代码 upstream GY{#Nginx是如何实现负载均衡的&a…

2025电工杯数学建模B题思路数模AI提示词工程

我发布的智能体链接&#xff1a;数模AI扣子是新一代 AI 大模型智能体开发平台。整合了插件、长短期记忆、工作流、卡片等丰富能力&#xff0c;扣子能帮你低门槛、快速搭建个性化或具备商业价值的智能体&#xff0c;并发布到豆包、飞书等各个平台。https://www.coze.cn/search/n…

【日志软件】hoo wintail 的替代

hoo wintail 的替代 主要问题是日志大了以后会卡有时候日志覆盖后&#xff0c;改变了&#xff0c;更新了&#xff0c;hoo wintail可能无法识别需要重新打开。 有很多类似的日志监控软件可以替代。以下是一些推荐的选项&#xff1a; 免费软件 BareTail 轻量级的实时日志查看…

Ollama-OCR:基于Ollama多模态大模型的端到端文档解析和处理

基本介绍 Ollama-OCR是一个Python的OCR解析库&#xff0c;结合了Ollama的模型能力&#xff0c;可以直接处理 PDF 文件无需额外转换&#xff0c;轻松从扫描版或原生 PDF 文档中提取文本和数据。根据使用的视觉模型和自定义提示词&#xff0c;Ollama-OCR 可支持多种语言&#xf…

OpenCV CUDA 模块中图像过滤------创建一个拉普拉斯(Laplacian)滤波器函数createLaplacianFilter()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::createLaplacianFilter 是 OpenCV CUDA 模块中的一个函数&#xff0c;用于创建一个 拉普拉斯&#xff08;Laplacian&#xff09;滤波器…

图论学习笔记 3

自认为写了很多&#xff0c;后面会出 仙人掌、最小树形图 学习笔记。 多图警告。 众所周知王老师有一句话&#xff1a; ⼀篇⽂章不宜过⻓&#xff0c;不然之后再修改使⽤的时候&#xff0c;在其中找想找的东⻄就有点麻烦了。当然⽂章也不宜过多&#xff0c;不然想要的⽂章也不…

【将WPS设置为默认打开方式】--突然无法用WPS打开文件

1. 点击【开始】——【WPS Office】——【配置工具】&#xff1b; 2. 在出现的弹窗中&#xff0c;点击【高级】&#xff1b; 3. 在“兼容设置”中&#xff0c;将复选框勾上&#xff0c;点击【确定】。