安全见闻-web安全

web安全

一、web程序简介

1. Web程序的基本构成

2. 工作流程

3. 安全性

二、JavaScript代码库

1. 代码库的概念和用途

2. 常见的代码库

三、框架

        1. 常见的前端框架

        2. 常见的后端框架

四、数据库

1. 数据库的分类

2. 数据库的潜在漏洞

3. 学习数据库的重要性

五、服务程序(中间件)

1. 常见的服务器程序

2. 潜在漏洞

六、web应用漏洞风险点

1. 前端潜在漏洞

2. 后端潜在漏洞


学习视频泷羽sec:安全见闻(2)_哔哩哔哩_bilibili

web安全

强调了Web程序的复杂性,指出前端语言虽然只有三种(HTML、CSS、JavaScript),但后端语言和框架非常多。学习Web安全需要了解多种后端语言,如Java、PHP、Python等,因为每种语言都可能存在反序列化漏洞。
强调理解Web程序的基本概念对于学习Web安全至关重要。懂进攻,知防守:了解攻击手段和防御策略是学习Web安全的基础。

一、web程序简介

1. Web程序的基本构成

Web程序通常由以下几个部分组成:

  1. 前端:用户界面部分,通过URL向服务器发送请求。

  2. 后端:服务器端逻辑,处理前端请求并执行相应的操作,如用户登录。

  3. 数据库:存储数据的地方,后端会调用数据库中的数据来处理请求。

  4. 服务器:存放数据库和运行后端程序的硬件设备。

2. 工作流程

  1. 用户通过前端(如浏览器)输入URL,发送请求到后端。

  2. 后端接收到请求后,根据请求的类型(例如登录请求),调用数据库中的数据。

  3. 数据库存储在服务器上,后端通过服务器访问数据库。

  4. 后端处理完请求后,将结果返回给前端,前端展示给用户。

3. 安全性

Web安全入门课程会进一步讲解这些内容,强调了理解这些基本概念的重要性。

  1. HTML:提到了点击劫持(Clickjacking)的问题,这是一种安全漏洞,攻击者可以利用它来诱导用户在不知情的情况下与网页进行交互。

  2. CSS:虽然CSS主要用于样式设计,但也存在注入问题。有时会被误认为是跨站脚本攻击(XSS),尤其是对于新手来说。

  3. JavaScript:涉及多种安全问题,包括:

    1. XSS(跨站脚本攻击):分为DOM型、反射型和存储型。

    2. 点击劫持:与HTML中的点击劫持类似,是另一种诱导用户进行非自愿操作的攻击手段。

    3. 请求走私(Request Smuggling):一种攻击技术,可以导致服务器解析请求时出现混淆,从而执行恶意代码。

        文中强调了保持谦逊和持续学习的重要性,指出即使掌握了这些语言,仍然有很多知识需要学习,特别是在Web安全领域。如果不理解这些语言,就不可能掌握XSS、点击劫持、Web缓存漏洞、请求走私和跨域等安全问题。因此,要进行Web渗透测试和安全防护,必须学习这些知识。


二、JavaScript代码库

1. 代码库的概念和用途

代码库是将常用的代码片段、功能或组件封装起来,以便在不同的项目中方便地调用和重用。这样做可以节省开发时间,提高代码的可维护性和可重用性。

2. 常见的代码库

  1. jQuery:一个快速、小巧且功能丰富的JavaScript库。它简化了HTML文档遍历、事件处理、动画和Ajax交互。

  2. Bootstrap:一个流行的前端框架,用于开发响应式和预制的前端项目。它提供了预设计的组件和预设的CSS预处理器。

  3. Element UI:一个基于Vue.js的桌面端组件库,用于快速搭建企业级的前端界面。

总结:代码库通过封装常用的功能,使得开发者可以避免重复编写相同的代码,从而提高开发效率。通过使用这些库,开发者可以更快地构建出功能丰富且美观的Web应用。


三、框架

所有框架最终都是基于HTML、CSS和JavaScript这三种基本语言构建的。

如果仅从纯粹的JavaScript角度去分析安全问题(如XSS)会非常耗时,通常通过使用框架来分析这些问题。

1. 常见的前端框架

  1. React - 用于构建用户界面的 JavaScript 库,支持组件化开发。

  2. Vue.js - 渐进式 JavaScript 框架,易于上手,适合构建交互式界面。

  3. Angular - 由 Google 开发的框架,适合构建复杂的单页应用。

  4. Svelte - 编译型框架,注重性能,开发体验友好。

  5. Bootstrap - 前端框架,提供响应式设计和组件库,便于快速布局。

  6. Tailwind CSS - 实用优先的 CSS 框架,允许快速设计 UI。

  7. jQuery - 虽然较老,但仍被广泛使用,简化了 DOM 操作和事件处理。

  8. Foundation - 类似 Bootstrap 的前端框架,提供响应式设计和组件。

2. 常见的后端框架

  1. Slim - 轻量级的 PHP 微框架,适合构建简单的 API 和小型应用。

  2. Lumen - Laravel 的微框架,专为构建快速的 API 而设计。

  3. CodeIgniter - 小巧且高效的 PHP 框架,适合快速开发。

  4. Yii - 高性能的 PHP 框架,提供丰富的功能,适合中小型项目。

  5. Django - 全功能框架,强调快速开发和清晰的设计。

  6. Laravel - 现代 PHP 框架,以优雅的语法和强大的功能受到欢迎。

  7. Flask - 轻量级框架,适合快速构建小型应用和 API。

  8. ThinPHP - 是一个轻量级的 PHP 框架,旨在提供简单、快速的开发体验。

  9. Symfony - 组件化的框架,适合大型和复杂的应用。

  10. Ruby on Rails - 以约定优于配置著称,适合快速开发 Web 应用。

  11. Spring Boot - 用于构建生产级应用,支持微服务架构。

  12. Jakarta EE - 企业级应用开发的标准框架。

  13. ASP.NET Core - 微软的跨平台框架,适合构建高性能 Web 应用。

还有许多框架,但了解它们的基本功能就足够了。


四、数据库

1. 数据库的分类

数据库可以分为两大类:

1.1. 关系型数据库:这类数据库使用表格来存储数据,表格之间通过关系来关联。常见的关系型数据库包括:

    MySQL
    SQL Server
    Access
    PostgreSQL

1.2. 非关系型数据库:这类数据库不使用表格模型,而是使用其他数据模型,如键值对、文档、宽列存储或图形数据库。常见的非关系型数据库包括:  

        MongoDB  

        CouchDB  

        Neo4j  

        Redis

2. 数据库的潜在漏洞

提到了数据库可能存在的潜在漏洞,如SQL注入、XSS(跨站脚本攻击)、命令注入等。

3. 学习数据库的重要性

强调了在想要学习SQL注入等安全问题之前,需要对数据库有一定的了解。

比喻说,如果你想学SQL注入而不知道数据库是什么,就好比想当警察而不知道枪是什么。


五、服务程序(中间件)

1. 常见的服务器程序

Apache:一种广泛使用的Web服务器软件。
Nginx:一种高性能的HTTP和反向代理服务器。
IIS(Internet Information Services):微软的Web服务器产品。
Tengine:由淘宝网发起的Web服务器项目,Nginx的分支。
Tomcat:由Apache软件基金会开发的Servlet容器。
WebLogic:由Oracle公司开发的Java应用服务器。

2. 潜在漏洞

服务器程序可能存在的潜在漏洞包括:
        信息泄露
        文件上传漏洞
        文件解析漏洞
        目录遍历    
        访问控制问题

六、web应用漏洞风险点

1. 前端潜在漏洞

信息泄露:敏感信息未经适当保护而被泄露。
XSS(跨站脚本攻击):攻击者在网页中注入恶意脚本。
CSRF(跨站请求伪造):攻击者诱使用户在已认证的会话中执行非自愿的操作。
点击劫持:攻击者通过透明层或窗口欺骗用户点击。
访问控制:未正确实施的权限检查导致未授权访问。
Web缓存漏洞:浏览器或服务器缓存敏感信息。
跨域漏洞:不同域之间的安全限制被绕过。
请求走私:攻击者利用HTTP请求的解析差异进行攻击。

2. 后端潜在漏洞

信息泄露:同前端,但通常涉及服务器端的数据。
XSS:虽然主要影响前端,但后端也需防范反射型XSS。
CSRF:同前端,但后端需要实施适当的防御措施。
SSRF(服务器端请求伪造):攻击者利用服务器端应用程序发起恶意请求。
反序列化漏洞:不当的反序列化操作导致安全问题。
SQL注入漏洞:攻击者通过注入恶意SQL代码来操纵数据库。
命令注入漏洞:攻击者通过注入恶意命令来执行未授权的操作。
服务端模板注入:攻击者通过注入模板代码来执行恶意操作。
跨域漏洞:同前端,但后端需要正确设置CORS策略。
访问控制:同前端,但后端需要确保适当的权限检查。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)

刚解决Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)没几天,又来一个新的,真是哭笑不得啊。 springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)https://blog.csdn.ne…

嵌入式硬件电子电路设计(二)开关电源BOOST升压电路

目录 升压电路原理 BOOST电路基本结构 BOOST电路工作过程分析 1. 开关导通阶段 2. 开关关断阶段 3. 稳定输出电压 BOOST电路工作的实际调研分析 1. 非同步BOOST电路 2. 同步BOOST电路 XL6009电路分析 SX1308电路分析 引言:前面已经讲述了Buck电路&#…

如何安装和使用PowerDesigner

教程目录 一、安装二、使用 一、安装 1、启动安装程序。 2、Trial,然后Next。 3、选PRC,同意协议,Next。 4、设置安装路径,Next。 5、Next。 6、全选,Next。 7、Next。 8、Next。 9、等待安装。 10、…

SQL进阶技巧:巧用异或运算解决经典换座位问题

目录 0 问题描述 1 数据准备 2 问题分析 2.1 什么是异或 2.2异或有什么特性? 2.3 异或应用 2.4 本问题采用异或SQL解决方案 3 小结 0 问题描述 表 seat中有2个字段id和student id 是该表的主键(唯一值)列,student表示学生姓名。 该表的每一行都表示学生的姓名和 ID。…

PAT甲级-1074 Reversing Linked List

题目 题目大意 给一个链表的头结点和总节点个数,以及k。每k个节点的链表都要翻转。 思路 链表可以用一个结构体数组来存储,先遍历一遍,过滤掉不在链表中的节点。然后将过滤好的节点放入res数组中,每k个元素用一次reverse()&…

PHP + Windows小皮面板 + VScode 安装教程

目录 1. 小皮面板安装包 下载 2、配置MySQL 可以在cmd命令框中使用 3. VScode安装 如有错误,烦请批评指正 1. 小皮面板安装包 下载 官方地址https://old.xp.cn/download.html 下载完后,一路next,文件路径自定义 2、配置MySQL 可以在cm…

ESP8266联网

目录 1.ESP8266连接热点 2.ESP8266创建热点 创建热点的ESP8266 连接热点的ESP8266 3.发送网络请求 案例一 案例二 4.连接服务器 接收信息开关灯 发布消息开关灯 5.ESP8266创建HTTP服务 ​编辑 ​编辑 ​编辑 6.ESP8266HTTP请求控制灯 ​编辑 7.ESP8266接收后端数据…

聊一聊Qt中的按钮

目录 QAbstractButton 功能概述 快捷键 默认按钮 按钮状态 自动重复功能 切换按钮 信号 子类化 API列表 QPushButton 按钮外观与功能 默认按钮 按钮的状态与模式 使用建议 菜单按钮 API QToolButton 创建工具按钮 用途示例 自动抬起功能 图标设置 外观与…

使用RabbitMQ实现微服务间的异步消息传递

使用RabbitMQ实现微服务间的异步消息传递 RabbitMQ简介 安装RabbitMQ 在Ubuntu上安装RabbitMQ 在CentOS上安装RabbitMQ 配置RabbitMQ 创建微服务 生产者服务 安装依赖 生产者代码 消费者服务 消费者代码 运行微服务 消息模式 直接模式 生产者代码 消费者代码 扇出模式 生产…

「实战应用」如何在 DHTMLX Scheduler 中实现动态主题切换?

创建响应式、直观的 UI 需要适应用户对应用程序各个方面的偏好。其中一项可显著提升用户体验的热门功能是能够在明暗主题之间切换。它在日程安排日历等综合组件中尤其有用。 本文将指导您在 DHTMLX Scheduler 中实现动态主题切换,使其适应用户设置的首选系统主题。…

Marin说PCB之电源的Surface Current Density知多少?

小编我是一位资深的国漫迷,像什么仙逆,斗破,斗罗,完美世界,遮天,凡人修仙传,少年歌行等,为了可以看这些视频小编我不惜花费了攒了很多年的私房钱去开了这个三个平台的会员啊&#xf…

【YApi】接口管理平台

一、简介 YApi 是一个用于前后端开发团队协作的 API 管理平台,帮助团队更加高效地进行 API 接口的设计、测试、文档管理和版本控制等工作。 YApi 主要功能: API 设计和管理:提供 API 设计和文档生成工具,使开发者能够轻松创建、…

【C/C++】字符/字符串函数(1)——由string.h提供

零.导言 什么是字符/字符串函数呢? 其实就是一类用于处理字符和字符串的函数。 而其中一部分函数包含在头文件 string.h 中,有 strlen strcpy strcat strcmp strncpy strncat strncmp strstr strtok strerror 等等 接下来我将逐个讲解这些函数。 一.str…

简单的kafkaredis学习之redis

简单的kafka&redis学习之redis 2. Redis 2.1 什么是Redis Redis是一种面向 “Key-Value” 数据类型的内存数据库,可以满足我们对海量数据的快速读写需求,Redis是一个 NoSQL 数据库,NoSQL的全称是not only sql,不仅仅是SQL&…

在 Visual Studio 中使用 Eigen 库

在 Visual Studio 中使用 Eigen 库 参考教程: 在 Visual Studio 中配置 Eigen库_vs调用eigen-CSDN博客 Eigen 是一个开源的 C 库,主要用来支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。Eigen 除了需要 C 标准库以外&am…

认证鉴权框架之—sa-token

一、概述 Satoken 是一个 Java 实现的权限认证框架,它主要用于 Web 应用程序的权限控制。Satoken 提供了丰富的功能来简化权限管理的过程,使得开发者可以更加专注于业务逻辑的开发。 二、逻辑流程 1、登录认证 (1)、创建token …

MES(Manufacturing Execution System)制造执行系统解决方案 :高效协同, 实现数字化智能工厂

文章目录 引言I 常用功能模块车间实时数据设备维修证书管理II UI设计III 术语5M1Esee also引言 MES软件即制造企业生产过程执行管理软件,是一套面向制造企业车间执行层的生产信息化管理系统。 MES 可以为企业提供包括制造数据管理、计划排程管理、生产调度管理、库存管理、质…

Qt 实战(10)模型视图 | 10.5、代理

文章目录 一、代理1、简介2、自定义代理 前言: 在Qt的模型/视图(Model/View)框架中,代理(Delegate)是一个非常重要的概念。它充当了模型和视图之间的桥梁,负责数据的显示和编辑。代理可以自定义…

“北斗+实景三维”,助力全域社会治理

在国家治理体系和治理能力现代化的大背景下,全域社会治理成为提升国家治理效能的关键。“北斗实景三维”技术组合,为全域社会治理提供了新的技术支撑和解决方案。本文将探讨这一技术如何助力全域社会治理,以及其在实际应用中的潜力和挑战。 …

mysql8.0.32升级到8.0.40

上篇8.0.32库的准备:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No suc-CSDN博客 此篇测试升级到8.0.40 MySQL :: Download MySQL Community Server rootjyc:~# mysql -u root -pabcd1234 mysql: [Warning]…