【HW系列】—web常规漏洞(SQL注入与XSS)

SQL注入与XSS攻防解析(安全防御指南)

一、SQL注入基础(防御视角)

​​1. 简介​​

SQL注入是一种通过构造非预期SQL语句操纵数据库的攻击技术。作为开发者,需重点关注输入验证与查询安全,建立全流量监测机制,识别异常参数变形。

​​2. 原理剖析​​

当应用程序未对用户输入充分验证时,攻击者可通过拼接额外SQL指令绕过验证或窃取数据。
​​防御重点​​:

监控SQL日志中的非常规语法
使用预编译语句隔离代码与数据

​​3. 危害等级​​

高风险:数据泄露、权限绕过、文件系统操作
防御优先级:需在开发阶段嵌入安全机制

​​4. 分类与防护

​​

在这里插入图片描述

二、SQL注入防御关键技术

​​输入验证规则​​

数字字段:正则匹配1+$
字符串字段:过滤’";<>等特殊符号
白名单机制:用户名仅允许字母数字(2+$)

数据库防火墙配置​​

拦截特征:UNION SELECT、SLEEP()、BENCHMARK()
权限控制:应用账号禁用FILE/EXECUTE权限

盲注类型与防御对比

原创

一、XSS漏洞核心防御

XSS基础

跨站脚本攻击简称XSS,是指恶意攻击者往Web页面里插入恶意代码,当受害者的浏览器加载网站时代码就会执行。跨站点脚本是一种客户端代码注入攻击。


成因

由于服务器对输入和输出没有做严格的验证,导致攻击者构造的字符输出到前端时被浏览器执行,当作有效代码解析执行从而产生危害。

危害

  1. 钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼 JavaScript 以监控目标网站的表单输入,甚至发起基于 DHTML 更高级的钓鱼攻击方式。
  2. 网站挂马:跨站时利用 IFrame 嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站上,或者弹出恶意网站窗口等方式都可以进行挂马攻击。
  3. 身份盗用:Cookie 是用户对于特定网站的身份验证标志,XSS 可以盗取到用户的 Cookie,从而利用该 Cookie 盗取用户对该网站的操作权限。如果一个网站管理员用户 Cookie 被窃取,将会对网站引发巨大的危害。
  4. 盗取网站用户信息:当能够窃取到用户 Cookie 从而获取到用户身份使,攻击者可以获取到用户对网站的操作权限,从而查看用户隐私信息。
  5. 垃圾信息发送:比如在 SNS 社区中,利用 XSS 漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群。
  6. 劫持用户 Web 行为:一些高级的 XSS 攻击甚至可以劫持用户的 Web 行为,监视用户的浏览历史,发送与接收的数据等等。
  7. XSS 蠕虫:XSS 蠕虫可以用来打广告、刷流量、挂马、恶作剧、破坏网上数据、实施 DDoS 攻击等。

分类

(1) 反射型
反射型XSS,又称非持久型XSS,攻击相对于受害者而言是一次性的 具体表现在受害者点击了含有的恶意JavaScript脚本的url,恶意代码并没有保存在目标网站,而Web应用程序只是不加处理的把该恶意脚本“反射”回受害者的浏览器而使受害者的浏览器执行相应的脚本。
(2) 存储型
存储型XSS是指应用程序通过Web请求获取不可信赖的数据,在未检验数据是否存在XSS代码的情况下,便将其存入数据库 当下一次从数据库中获取该数据时程序也未对其进行过滤,页面再次执行XSS代码持续攻击用户。 存储型XSS漏洞大多出现在留言板、评论区,用户提交了包含XSS代码的留言到数据库,当目标用户查询留言时,那些留言的内容会从服务器解析之后加载出来。
(3) DOM型

不与后台服务器交互数据,也属于反射型的一种,一种通过dom操作前端输出的时候产生问题。DOM,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式,DOM-XSS简单理解就是不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题。

跨站脚本攻击漏洞修复

  1. 输入过滤。对用户提交的数据进行有效性验证,仅接受指定长度范围内并符合我们期望格式的的内容提交,阻止或者忽略除此外的其他任何数据。
  2. 输出转义。在变量输出到 HTML 页面时,可以使用编码或转义的方式来防御 XSS 攻击。htmlspecialchars() :把预定义的字符转换为 HTML 实体。
  3. 使用 HttpOnly 。 HttpOnly 是加在 cookies 上的一个标识,用于告诉浏览器不要向客户端脚本暴露 cookie 。当你在 cookie 上设置 HttpOnly 标识后,浏览器就会知会到这是特殊的 cookie ,只能由服务器检索到,所有来自客户端脚本的访问都会被禁止。
  4. 配合 CSP 。 CSP (Content Security Policy)指的是内容安全策略,为了缓解很大一部分潜在的跨站脚本问题,浏览器的扩展程序系统引入了内容安全策略。 CSP 本质上是建立白名单,规定了浏览器只能够执行特定来源的代码,即使存在跨站脚本攻击漏洞,也不会加载来源不明的第三方脚本。

企业级防御实践

​​开发流程管控​​
安全编码规范:SDL流程嵌入需求评审
自动化扫描:SonarQube检测未转义输出
​​纵深防御体系​​
前端:CSP+输入过滤
后端:参数化查询+WAF规则(如拦截

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

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

相关文章

Accelerate 2025北亚巡展正式启航!AI智御全球·引领安全新时代

近日&#xff0c;网络安全行业年度盛会Accelerate 2025北亚巡展正式在深圳启航&#xff01;智库专家、产业领袖及Fortinet高管、产品技术团队和300余位行业客户齐聚一堂&#xff0c;围绕“AI智御全球引领安全新时代”主题&#xff0c;共同探讨AI时代网络安全新范式。大会聚焦三…

RAG系统构建之嵌入模型性能优化完整指南

导读&#xff1a;在企业级RAG系统的实际部署中&#xff0c;您是否遇到过这样的困扰&#xff1a;嵌入计算成本不断攀升&#xff0c;API调用频繁触及限制&#xff0c;而系统响应速度却始终达不到用户期望&#xff1f;这些看似分散的问题&#xff0c;实际上都指向同一个技术核心&a…

python 自动生成不同行高的word

python 自动生成不同行高的word # -*- coding: utf-8 -*- from docx import Document from docx.shared import Cm, Pt, Inches from docx.oxml import OxmlElement from docx.oxml.ns import qn from docx.enum.text import WD_ALIGN_PARAGRAPHclass DynamicTableGenerator:d…

如何训练意志力

设定清晰的目标 目标需要是具体的&#xff0c;可实现的&#xff0c;有时间限制的。比如不要说“我要锻炼”&#xff0c;而是改成“每周跑步3次&#xff0c;每次30分钟”。 从小事开始 起步通常都是困难的&#xff0c;一开始定一个很大很复杂的任务也超出了自己的能力&#x…

FastAPI 依赖注入

依赖注入常用于以下场景&#xff1a; 共享业务逻辑&#xff08;复用相同的代码逻辑&#xff09; 共享数据库连接 实现安全、验证、角色权限 等…… 上述场景均可以使用依赖注入&#xff0c;将代码重复最小化。 创建依赖项 依赖项就是一个函数&#xff0c;且可以使用与路…

接口幂等性原理与方案总结

文章目录 接口幂等概念典型场景核心解决方案一锁二判三更新 方案选型对比 接口幂等概念 定义&#xff1a;无论调用接口多少次&#xff0c;对系统的影响与单次调用一样 范畴&#xff1a;在后端开发中&#xff0c;通常更关注写接口的幂等&#xff0c;因为写接口才会对系统数据造…

【已解决】windows gitbash 出现CondaError: Run ‘conda init‘ before ‘conda activate‘

在 Git Bash 中执行&#xff1a; source /c/Users/你的用户名/miniconda3/etc/profile.d/conda.sh # 注意填入你自己的路径 conda init bash关闭并重新打开 Git Bash 终端。测试激活环境&#xff1a; conda activate your_env_name注意事项 要把上述命令中的 你的用户名 替…

软件包管理系统的架构与生态机制

文章目录 前言一、总结二、如何上传自己的软件包 前言 在日常软件开发中&#xff0c;我们经常使用诸如apt install, pip install, npm install之类的命令&#xff0c;但有一个问题是&#xff0c;这些下载命令是从哪里下载的这些软件包&#xff0c;以及我们是否能上传自己的代码…

Java线程池管理最佳实践(设计模式)

引言 在多线程编程中&#xff0c;线程池是一种非常重要的资源管理工具。合理使用线程池可以显著提高系统性能&#xff0c;避免频繁创建和销毁线程带来的开销。今天&#xff0c;我将为大家深入分析一个实用的ThreadPoolManager实现&#xff0c;它来自com.kingdee.eas.util包&am…

4.8.2 利用Spark SQL计算总分与平均分

在本次实战中&#xff0c;我们的目标是利用Spark SQL计算学生的总分与平均分。首先&#xff0c;我们准备了包含学生成绩的数据文件&#xff0c;并将其上传至HDFS。接着&#xff0c;通过Spark的交互式编程环境&#xff0c;我们读取了成绩文件并将其转换为结构化的DataFrame。然后…

HTML 文件路径完全指南:相对路径、绝对路径解析与引用技巧

一、为什么必须学会文件路径&#xff1f;—— 网页引用资源的 “地址规则” 在 HTML 中&#xff0c;引用图片、CSS、JS 等外部文件时&#xff0c;必须通过文件路径告诉浏览器资源的位置。路径错误会导致资源无法加载&#xff08;页面出现 broken image 图标或样式丢失&#xf…

keepalived两台设备同时出现VIP问题

目录 问题背景&#xff1a; 日志分析如下&#xff1a; 原因和解决方案总结&#xff1a; 问题背景&#xff1a; keepalived-master和keepalived-slave同时出现了VIP&#xff0c;出现了非对称路由和双主现象 日志分析如下&#xff1a; master能够接受到来自slave的通告消息…

【开源解析】基于PyQt5+Folium的谷歌地图应用开发:从入门到实战

&#x1f310;【开源解析】基于PyQt5Folium的谷歌地图应用开发&#xff1a;从入门到实战 &#x1f308; 个人主页&#xff1a;创客白泽 - CSDN博客 &#x1f525; 系列专栏&#xff1a;&#x1f40d;《Python开源项目实战》 &#x1f4a1; 热爱不止于代码&#xff0c;热情源自每…

篇章五 数据结构——链表(一)

目录 1.ArrayList的缺陷 2. 链表 2.1 链表的概念及结构 2.2 链表结构 1. 单向或者双向 2.带头或者不带头 3.循环或者非循环 2.3 链表的实现 1.完整代码 2.图解 3.显示方法 4.链表大小 5. 链表是否存在 key 值 6.头插法 7.尾插法 8.中间插入 9.删除key值节点 10.…

数据库相关面试

数据库相关面试 Mysql MySQL中的事务隔离级别及其特点 参考&#xff1a;事务的隔离级别&#xff1a;可重复读 未提交读(Read Uncommitted)&#xff1a;允许脏读&#xff0c;也就是可能读取到其他会话中未提交事务修改的数据 已提交读(Read Committed)&#xff1a;只能读取到…

基于Scrapy的天猫商品数据爬取与分析实战(含API签名破解与可视化)

基于Scrapy的天猫商品数据爬取与分析实战&#xff08;含API签名破解与可视化&#xff09; 本文以华为Mate 60 Pro为例&#xff0c;详细介绍如何使用Scrapy框架爬取天猫商品数据&#xff0c;涵盖API签名破解、反爬应对、数据存储及可视化全流程&#xff0c;适合爬虫进阶学习者实…

【C++进阶篇】哈希表的模拟实现(赋源码)

这里写目录标题 前言一. 开放地址法实现哈希表1.1 闭散列结构定义1.2 构造函数1.3 插入&#xff08;线性探测&#xff09;1.3.1 传统写法1.3.2 现代写法 1.4 查找1.5 删除 二. 链地址法实现哈希表&#xff08;哈希桶&#xff09;2.1 开散列结构定义2.2 构造函数2.3 插入2.4 查找…

07-后端Web实战(部门管理)

5. 修改部门 对于任何业务的修改功能来说&#xff0c;一般都会分为两步进行&#xff1a;查询回显、修改数据。 5.1 查询回显 5.1.1 需求 当我们点击 "编辑" 的时候&#xff0c;需要根据ID查询部门数据&#xff0c;然后用于页面回显展示。 5.1.2 接口描述 参照参照…

深度解析项目集方向或目标根本性转变的应对策略 —— 项目集管理实战指南

在复杂多变的商业环境中&#xff0c;项目集管理面临着重重挑战&#xff0c;而项目集方向或目标的根本性转变无疑是其中最具冲击力的问题之一。本文将深度剖析这一难题&#xff0c;为项目集管理从业者提供实用、新颖且富有价值的应对策略&#xff0c;助力大家在项目集管理的复杂…

JAVA面试复习知识点

面试中遇到的题目&#xff0c;记录复习&#xff08;持续更新&#xff09; Java基础 1.String的最大长度 https://www.cnblogs.com/wupeixuan/p/12187756.html 2.集合 Collection接口的实现&#xff1a; List接口&#xff1a;ArraryList、LinkedList、Vector Set接口&#xff1a…