安全见闻(2)——开阔眼界,不做井底之蛙
内容预览 ≧∀≦ゞ
- 安全见闻二:Web程序构成与潜在漏洞
- 声明
- 导语
- 前端语言及潜在漏洞
- 前端语言
- 前端框架与代码库
- 代码库的概念和用途
- 流行的JavaScript框架
- 常见的代码库
- 前端潜在漏洞
- 后端语言及潜在漏洞
- 常见后端语言
- 协议问题
- 后端潜在漏洞
- 数据库及潜在漏洞
- 数据库分类
- 数据库潜在漏洞
- 服务器程序及潜在漏洞
- 常见服务器程序
- 服务器程序潜在漏洞
- 结语
安全见闻二:Web程序构成与潜在漏洞
声明
学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负
导语
在现代网络安全的攻防体系中,Web程序的安全性是非常重要的一环。Web应用的前后端构成
->数据库管理
->服务器配置
等各个层面,都可能存在潜在的漏洞。
前端语言及潜在漏洞
Web应用的前端通常使用三大基础语言:HTML、CSS和JavaScript。这些语言的特性和使用方式直接影响Web应用的安全性。
前端语言
-
HTML
- 潜在漏洞:点击劫持(Clickjacking)
点击劫持是一种攻击方式,攻击者通过在网页中嵌套一个透明的框架(iframe),诱骗用户点击恶意链接或按钮。了解HTML结构对于防范此类攻击至关重要。
- 潜在漏洞:点击劫持(Clickjacking)
-
CSS
- 潜在漏洞:注入攻击(Injection Attacks)
注入攻击利用CSS的特性,将恶意代码注入到页面中,可能影响页面的显示效果或用户的交互体验。学习如何安全使用CSS属性是防范此类攻击的关键。
- 潜在漏洞:注入攻击(Injection Attacks)
-
JavaScript
- 常见漏洞:
- XSS (跨站脚本攻击)
XSS攻击允许攻击者向网站注入恶意脚本,可能导致用户数据泄露。根据注入方式不同,XSS可分为DOM型、反射型和存储型。
- 点击劫持
同上,利用透明框架欺骗用户点击隐藏的恶意链接。
- 请求走私(HTTP Smuggling)
攻击者通过篡改HTTP请求,绕过服务器的安全验证。这种攻击依赖于对HTTP协议的深入理解。
- XSS (跨站脚本攻击)
- 常见漏洞:
前端框架与代码库
代码库的概念和用途
代码库是将常用的代码片段、功能或组件封装起来,便于在不同项目中复用。
使用代码库可以节省开发时间,提高代码的可维护性和可重用性。
流行的JavaScript框架
- Vue.js、React、Angular
这些框架通过组件化和模块化提升了开发效率和代码组织性。
虽然它们能够帮助开发者高效构建复杂应用,但其底层依赖于HTML、CSS和JavaScript。
因此,框架中产生的安全问题往往与这些基础语言有关,常见的威胁包括跨站脚本攻击(XSS)。
常见的代码库
- jQuery:一个快速、小巧且功能丰富的JavaScript库,简化了HTML文档遍历、事件处理、动画和Ajax交互。
- Bootstrap:一个用于开发响应式和预制前端项目的流行框架,提供了预设计的组件和CSS预处理器。
- Element UI:基于Vue.js的桌面端组件库,常用于快速搭建企业级的前端界面。
前端潜在漏洞
前端应用若未实施适当的安全措施,可能暴露于多种攻击之下:
-
XSS
攻击者在网页中注入恶意脚本,当用户浏览该页面时,脚本被执行,可能导致用户信息泄露等。
-
CSRF (跨站请求伪造)
攻击者诱骗用户浏览器在已登录的网站上发送恶意请求,可能执行未授权操作。
-
点击劫持
欺骗用户点击隐藏的恶意链接,可能导致用户执行危险操作。
-
访问控制漏洞
系统中的访问权限设置存在缺陷,导致攻击者访问、修改或删除受保护的资源。
-
Web缓存漏洞
不当的缓存管理可能泄露敏感数据,例如用户信息和文件。
-
跨域漏洞
例如跨站脚本(XSS)攻击,跨源资源共享(CORS)绕过,JSONP 漏洞,跨站请求伪造(CSRF)
-
请求走私
利用了 HTTP 协议中请求和响应的解析和处理方式的不一致性,攻击者通过有造特定的恶意请求,以欺骗服务器和代理服务器,从而绕过安全机制,执行未经授权的操作。
后端语言及潜在漏洞
后端语言负责处理业务逻辑和数据库操作,不同语言具有独特的安全风险。
常见后端语言
-
PHP
常见漏洞:反序列化漏洞、SQL注入、命令注入等。 -
Java、Python、Go、C/C++、Lua、Node.js、Ruby
这些后端语言各有特性,但都可能面临与输入验证和用户权限管理相关的安全问题。
协议问题
后端开发涉及多种协议,尤其是请求走私攻击与协议处理方式密切相关。
理解HTTP协议机制对于学习此类攻击至关重要。
后端潜在漏洞
-
信息泄露
服务器返回的调试信息、日志等可能泄露关键信息,例如错误信息和内部结构。
-
XSS
后端处理不当也可能引入XSS风险,确保数据在输出前经过适当过滤。
-
CSRF
后端没有充分防范CSRF令牌时容易被利用,需加强令牌验证。
-
SSRF (服务器端请求伪造)
攻击者利用服务器发送恶意请求,可能导致内部网络被攻击。
-
反序列化漏洞
特定语言的对象反序列化容易被攻击,尤其是PHP,Python,Java。
-
SQL注入漏洞
通过操纵SQL查询,攻击者可执行未经授权的数据库操作,确保使用参数化查询以避免此类攻击。
-
命令注入漏洞
未对用户输入进行适当过滤或验证,可能导致执行系统命令,需严格验证输入。
-
文件包含漏洞
攻击者通过操纵应用程序的文件包含功能来加载和执行任意文件,这可能包括服务器上的敏感文件或远程恶意代码。
-
服务端模板注入
注入恶意代码片段至服务器模板中,影响渲染结果。
-
跨域漏洞
后端对CORS的错误配置,可能导致敏感数据被泄露。
-
访问控制漏洞
不当的访问权限管理,导致未授权用户访问敏感资源。
数据库及潜在漏洞
数据库是Web应用的重要组成部分,安全问题常发生在数据处理过程中,特别是输入验证和查询操作。
数据库分类
- 关系型数据库:
- MySQL
- SQL Server
- Access
- PostgreSQL
- 非关系型数据库:
- MongoDB
- CouchDB
- Neo4j
- Redis
数据库潜在漏洞
- SQL 注入漏洞
攻击者通过有造特殊的 SQL 语句,绕过身份验证,执行非授权操作。
- 跨站脚本攻击(XSS)漏洞
利用恶意脚本攻击 Web 服务器,行而影响数据库。
- 数据库缓冲区溢出漏洞
利用数据库缓冲区溢出,可能导致数据库不可用或数据泄露。
- 数据库索引损坏漏洞
损坏数据库索引,破坏数据库完整性和一致性。
- 数据库日志注入漏洞
注入恶意日志代码,导致数据库被攻击和监听。
服务器程序及潜在漏洞
服务器程序是Web应用的核心,负责处理用户请求、执行业务逻辑和管理数据流。如果服务器配置不当或存在漏洞,可能成为攻击者的目标。
常见服务器程序
- Apache
- Nginx
- IIS
- Tengine
- Tomcat
- WebLogic
服务器程序潜在漏洞
-
信息泄露
敏感配置文件或日志信息可能被泄露,定期审计服务器配置以提高安全性。
-
文件上传漏洞
未经验证的文件上传功能可能导致恶意代码被执行,确保上传文件类型和大小的限制。
-
文件解析漏洞
文件解析错误可能导致代码注入,使用安全库处理文件解析。
-
目录遍历
攻击者通过非法路径访问敏感文件,需限制用户对文件系统的访问。
-
访问控制漏洞
服务器未严格限制用户权限,导致未授权的访问,确保使用细粒度的访问控制。
结语
Web程序的安全问题错综复杂,涵盖前端、后端、数据库和服务器等多个层面。面对如此多样的挑战,唯有不断拓展视野,才能更好地掌握应对各种威胁的知识与技能。安全之路如同学海无涯,只有通过持续学习和实践,才能明确前进的方向,保持不断进步的动力。
相关文章:
安全见闻(2)——开阔眼界,不做井底之蛙
内容预览 ≧∀≦ゞ 安全见闻二:Web程序构成与潜在漏洞声明导语前端语言及潜在漏洞前端语言前端框架与代码库代码库的概念和用途流行的JavaScript框架常见的代码库 前端潜在漏洞 后端语言及潜在漏洞常见后端语言协议问题后端潜在漏洞 数据库及潜在漏洞数据库分类数据…...
ProtoBuf 的含义和安装
ProtoBuf 是什么 Protocol Buffers 是 Google 的⼀种语⾔⽆关、平台⽆关、可扩展的序列化结构数据的⽅法,它可⽤ 于(数据)通信协议、数据存储等。 Protocol Buffers 类⽐于、 XML,是⼀种灵活,⾼效,⾃动化机…...
C++位操作实战:掩码、提取与组装
在C编程中,位操作是一项基础且强大的技术,它允许程序员在二进制级别上直接操作数据。这种能力对于性能优化、内存节省以及底层硬件控制至关重要。本文将深入探讨C中的掩码操作、字节提取与组装,并通过实例展示这些技术的实际应用。 一、位运算…...
PVE虚拟机强制重启
在Proxmox VE (PVE) 中,强制重启虚拟机的方法有几种,取决于具体场景和虚拟机的状态。以下是常用的两种方法: 1. 使用PVE Web UI强制重启虚拟机 如果虚拟机无法正常关闭或重启,可以使用PVE Web界面中的强制关机/重启选项…...
Adobe Acrobat DC 打印PDF文件,没有打印出注释的解决方法
adobe acrobat在打印的时候,打印不出来注释内容(之前一直可以,突然就不行),升级版本、嵌入字体等等都试过,也在Google找了半天和问了GPT也么找着办法。 无奈之下,自己通过印前检查,…...
主机名学习
1.主机名 定义:主机名是一个人类可读的标识符,通常由字母、数字和连接符组成,用于标识网络中的设备。主机名可以是局部的(例如局域网中的设备名)或者全局的(通过 DNS 解析成 IP 地址)。 解析&…...
SpringBoot循环依赖
在Spring Boot(以及Spring框架)中,循环依赖是指两个或多个Bean互相依赖,导致Spring在创建这些Bean时无法正常进行依赖注入。例如,假设有两个类A和B,A依赖于B,而B又依赖于A。在这种情况下&#x…...
一道面试题:为什么要使用Docker?
先来笼统地看一下 1、环境一致性 众所周知,开发过程中一个常见的问题是环境一致性问题,由于开发环境,测试环境,生产环境不一致,导致有些bug并未在开发过程中被发现,而Docker的镜像提供了除内核外完整的运…...
类的创建、构造器、实例属性、实例方法
Creating Classes # Class: blueprint for creating new Objects # Object: instance of a class # Class: Human # Objects: John, Mary, Jack# 类名定义每个单词的首字母大写 class Point:# 每个方法至少有一个参数def draw(self):print("draw")# 创建Point对象 p…...
js读取.txt文件内容
方法一:FileReader() <input type"file" id"fileInput" /><script>const fileInput document.getElementById(fileInput)fileInput.addEventListener(change, function (e) {const file e.target.files[0]const reader new Fil…...
【AscendC算子开发】笔记2 算子高级开发和调试调优
算子调试 Tensor也可以通过特定的printf方法来打印,见上图。 gdb调试见上图。 为什么gdb调试无法成功,因为run.sh里面有两行export,如果直接通过.XX运行的话需要配置一下。 npu域也支持调试,可以使用上述的方法。 内存检测工…...
vscode连接keil-5 开发STM32 程序
Vs Code连接 keil-5 ,开发STM32 程序 为了不使用难用的 keil-5 软件 继续使用友好的 vscode开发 步骤: 1 安装Keil Assitant 扩展 2 将你的 Keil-5 这个程序的路径找到复制到这里 3 下载 Mingw 下载点此处 4 下载后只解压 就行了 不安装 下载完 放在…...
数据结构深度优先搜索遍历连通图+非连通图(C语言代码+遍历+终端输入内容)
首先数据结构(C语言版第二版)的关于深度优先搜索遍历连通图的图G4如下: 使用邻接表去创建上面这个无向图,然后再使用书本DFS函数以及DFSTraverse函数实现深度优先搜索遍历 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #…...
信息安全工程师(55)网络安全漏洞概述
一、定义 网络安全漏洞,又称为脆弱性,是网络安全信息系统中与安全策略相冲突的缺陷,这种缺陷也称为安全隐患。漏洞可能导致机密性受损、完整性破坏、可用性降低、抗抵赖性缺失、可控性下降、真实性不保等问题。 二、分类 网络安全漏洞可以根据…...
member access within null pointer of type ‘ListNode‘
文章目录 前言一、空指针解引用二、访问已释放的内存三、 结构体定义问题四、错误的链表操作五、代码上下文六、示例代码七、调试建议 前言 p -> next p1; p1 p1 -> next; p p->next;runtime error: member access within null pointer of type ListNode如果出现…...
UE5蓝图中整理节点的方法
UE5蓝图中整理节点的方法 第一种:子图 右键选中的节点,出现一个面板,点击 Collapse Nodes 既可折叠选中的所有节点 注意:子图不可以被复制使用。 双击子图可以查看节点,若不想折叠选中的节点为子图,右键点…...
01,http 协议
1 ,http 协议 :介绍 1 ,http :是什么 Hyper Text Transfer Protocol :超文本传输协议 2 ,传输内容 :文本 1 ,内容 : 纯文本 2 ,特殊 …...
在 typescript 中,如何封装一个 class 类来接收接口的响应数据
在 TypeScript 中,封装一个类来接收接口的响应数据是一个常见的需求,特别是在处理后端 API 响应时。这通常涉及到定义与后端 API 响应结构相匹配的接口(或类型),并在类中创建方法来处理这些数据。以下是一个简单的示例…...
力扣周赛第420场 中等 3325.字符至少出现k次的子字符串 I
文章目录 题目介绍题解 题目介绍 题解 滑动窗口思想:参考 3.无重复字符的最长子串 链接 代码如下: class Solution {public int numberOfSubstrings(String s, int k) {int n s.length(), res 0;for(int left 0; left < n; left){// 记录窗口内…...
【Spring框架】Spring核心思想IoC以及依赖注入DI详解
目录 Spring框架前言 服务端三层开发表现层业务层持久层 Spring框架的概述Spring框架的优点Spring核心——IoC什么是IoC?O.o什么是耦合度? 创建第一个IoC程序导入必要依赖编写接口和实现类编写Spring核心配置文件测试类进行测试 Spring配置文件Bean对象的…...
Java项目-基于springboot框架的智慧外贸系统项目实战(附源码+文档)
作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…...
Python程序控制结构 if语句详解
前面我们已经详细介绍了Python编程基础入门:从风格到数据类型再到表达式 在编程中,控制结构决定了代码的执行顺序。Python提供了丰富的控制结构,可以帮助程序根据不同条件做出不同的决策和操作。本文将深入介绍Python中常见的控制结构——包…...
【ppq install】
简介 PPQ 是 Sensetime OpenPPL 团队开源的量化部署工具,经过量化的神经网络往往能够在端侧加速600%~800%,而在目前已经支持OpenPPL, TensorRT, SNPE, NXP, Metax等多个不同平台的量化模拟与网络部署。PPQ 不仅限于提供强大而先进的量化优化算法&#x…...
3DGS相关方法conda环境配置
环境:ubuntu22.04,cuda_11.7 conda create -n 3dgs python3.8 -y conda activate 3dgs python -m pip install --upgrade pip pip uninstall torch torchvision functorch tinycudann pip install torch2.1.2cu118 torchvision0.16.2cu118 torchaudio2…...
python画图|曲线动态输出
【1】引言 前序教程中的曲线动态输出,其实是把曲线按照左右移动的形式输出(波的传递形式)。 python画图|曲线动态输出基础教程_python 动态曲线-CSDN博客 但有些时候我们更期待的是曲线不移动,随着自变量的增加而输出因变量&am…...
电子商务类型
常见电子商务类型及其代表性的例子: B2B(Business to Business) 定义:B2B 模式是指企业与企业之间的商业交易。在这种模式下,企业通过电子商务平台相互提供产品或服务。 特点: 大宗交易:通常…...
vue elementui el-table实现增加行,行内编辑修改
需求: 前端进行新增表单时,同时增加表单的明细数据。明细数据部分,可进行行编辑。 效果图: <el-card><div slot"header"><span style"font-weight: bold">外来人员名单2</span><…...
1. Redis简介与安装
1.1 什么是Redis Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,支持多种数据结构,如字符串、列表、集合、有序集合和哈希。它不仅能作为一个高效的缓存工具,还能作为消息队列、分布式锁和…...
Redis的持久化存储和集群管理操作
Redis 的持久化存储和集群 一、引言 Redis 是一个开源的内存数据结构存储系统,被广泛应用于缓存、消息队列、排行榜等场景。然而,由于数据存储在内存中,一旦服务器重启或出现故障,数据就会丢失。为了解决这个问题,Re…...
Auto-encoder(自编码器)
Auto-encoder(自编码器) 1 基本概念 自编码就和之前的cycle GAN的概念很像,假設你有非常大量的圖片,在 Auto-Encoder 裡面你有兩個 Network,一個叫做 Encoder,一個叫做 Decoder,他們就是兩個 N…...
音乐设计网站推荐/免费网站推广优化
deepin Linux Deepin 是一个基于 DEB 包管理的一个独立操作系统,和那些 Ubuntu(下个大版本是基于debian开发) 的衍生版仅仅只是换主题、调整ISO预置的软件包不同。Linux Deepin 在大量吸纳 Debian/Ubuntu 仓库的软件包之外,构建了更大的 Deep…...
做网站需要哪些技术/自助建站系统软件
量化投资是指使用数理分析、编程、建模等方式,通过对样本数据进行集中比对处理,找到数据之间的关系,制定量化策略,并使用编写的软件程序来执行交易,从而获得投资回报的方式。在如今的量化投资领域,已经有了…...
平面设计找图网站/查域名注册详细信息查询
简介: 烟雨图床程序这是我目前为止看到的唯一一款开源的既可爱又简洁的图床程序了,它基于烟雨写的QAQ_CORE开发,采用MVC架构编写而成,使用Github进行文件储存,由JSDelivr提供全球CDN加速服务,它很可爱。 她…...
windows10网站建设/2345中国最好的网址站
官方说这不是错误, 开始安装LNMP时,提示error: package httpd is not installed , error: package php is not installed ,error: package mysql is not installed 这个不是错误信息,这个是检查系统环境,将原系统中的php、apache、mysql删除&…...
电脑网站转手机版/厦门百度开户
另外,因电脑性能差异及VCD解码质量的不同,播放画面质量和音质将有所差异在pivot元素的右边添加值用三维动画做多媒体应用程序中的动画界面,由于画面效果良好逼真,已越来越多地被程序员们采用而这个问题具体的校验过程就是一个方法调用,涉及到…...
网站建设实训报告模板/学网络运营在哪里学比较好
单例,故名思议,一个只能创建一个实例的类。 单例被广泛应用于Spring的bean(默认)、线程池、数据库连接池、缓存,还有其他一些无状态的类如servlet。 一个没必要多例的类实现了单例可以节约空间(显而易见&am…...