安全见闻-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. 关系型数据库:这类数据库使用表格来存储数据,表格之间通过关系来关联。常见的关系型数据库包括:

    MySQLSQL ServerAccessPostgreSQL

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策略。
访问控制:同前端,但后端需要确保适当的权限检查。

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

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

相关文章

Vue.js(2) 基础:指令与功能概览

正确的开始&#xff0c;微笑的进步&#xff0c;然后持续 文章目录 class和Style绑定v-bind绑定classv-bind绑定style 指令v-model指令v-clock指令v-once指令自定义指令 功能过滤器操作dom计算属性 class和Style绑定 v-bind绑定class 绑定数据对象<div id"app"&g…

【Linux探索学习】第九弹——Linux工具篇(四):项目自动化构建工具—make/Makefile

Linux笔记&#xff1a;https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 在前面我们学习了如何用编译并执行&#xff0c;在现代软件开发中&#xff0c;构建一个项目涉及多个步骤&#xff0c;从编译源代码到链接库文件&a…

基于SpringBoot+Vue+MySQL的房屋租赁系统

系统展示 系统背景 随着城市化进程的加速和人口流动性的增加&#xff0c;房屋租赁市场逐渐成为城市生活的重要组成部分。然而&#xff0c;传统的房屋租赁方式存在诸多问题&#xff0c;如信息不对称、交易成本高、租赁关系不稳定等&#xff0c;这些问题严重影响了租赁市场的健康…

View三大机制(一):触摸机制(事件分发)

传递过程遵循如下顺序&#xff1a;Activity->Window->PhoneWindow->DecorView->RootView->ViewGroup->View View事件方法执行顺序:onTouchListener > onTouchEvent > onLongClickListener > onClickListener 主要由三个重要的方法共同完成的,只有Vi…

【面试】rabbitmq的主要组件有哪些?

目录 1. Producer&#xff08;生产者&#xff09;2. Broker&#xff08;消息代理&#xff09;3. Exchange&#xff08;交换机&#xff09;4. Queue&#xff08;队列&#xff09;5. Consumer&#xff08;消费者&#xff09;6. Binding&#xff08;绑定&#xff09;7. Channel&am…

namespace 隔离实战

Docker简介 什么是虚拟化、容器化为什么要虚拟化、容器化?虚拟化实现 什么是虚拟化、容器化 物理机: 实际的服务器或者计算机。相对于虚拟机而言的对实体计算机的称呼。物理机提供给虚拟机以硬件环境&#xff0c;有时也称为“寄主”或“宿主”。 虚拟化: 是指通过虚拟化技术将…

Java AQS CountDownLatch 源码

前言 相关系列 《Java & AQS & 目录》《Java & AQS & CountDownLatch & 源码》《Java & AQS & CountDownLatch & 总结》《Java & AQS & CountDownLatch & 问题》 涉及内容 《Java & AQS & 总结》《Java & AQS &am…

Canvas 画布

文章目录 1. 初识1.1 认识画布1.2 兼容性1.3 上下文属性 2. 绘制2.1 绘制基本图形2.1.1 绘制矩形2.1.2 绘制圆形2.1.3 绘制直线2.1.4 绘制圆弧2.1.5 绘制贝塞尔二次曲线2.1.6 绘制贝塞尔三次曲线2.1.7 封装路径 2.2 颜色控制2.2.1 颜色设置2.2.2 线性渐变2.2.3 径向渐变2.2.4 圆…

使用 web (vue 和DRF))实现 模拟一个IDE 功能思路

采用文件系统和数据库相结合的方案&#xff0c;不仅可以实现基本的文件管理&#xff0c;还可以为未来的扩展提供灵活性。结合我们讨论的内容&#xff0c;以下是更完善的策略&#xff1a; 方案概述&#xff1a;文件系统与数据库结合 文件系统负责实际的文件存储和执行操作&…

javascript中的展开运算符是什么

展开运算符&#xff08;Spread Operator&#xff09;是 JavaScript 中一个非常有用的语法特性&#xff0c;它通过三个点 ...来展开可迭代对象&#xff08;如数组或对象&#xff09;&#xff0c;使其可以更方便地进行操作。 1. 数组中的使用 1.1 合并数组 展开运算符可以轻松地…

XML解析小坑记录[正则表达式解析]

一、问题描述 在做 SSO 单点登录时( 认证中为CAS服务对接 )。在完成对用户ticket票根校验后&#xff0c;返回了用户信息有关 XML 数据片段&#xff0c;例如下&#xff1a; <cas:serviceResponse xmlns:cas"http://www.xxx.xx/xx/cas"><cas:authentication…

ffmpeg视频滤镜:网格-drawgrid

滤镜介绍 drawgrid 官网链接 》 FFmpeg Filters Documentation drawgrid会在视频上画一个网格。 滤镜使用 参数 x <string> ..FV.....T. set horizontal offset (default "0")y <string> ..FV.....T. set…

(50)MATLAB最优延迟迫零均衡器仿真测试与评估

文章目录 前言一、最优延迟迫零均衡器评估模型二、最优延迟迫零均衡器仿真代码1.代码如下&#xff1a;2.迫零均衡器函数zf_equalizer()的MATLAB源码 三、仿真结果画图1.不同权系数长度和延迟的迫零均衡器性能2. 不同权系数长度的迫零均衡器的最佳延迟 前言 对于预设均衡器延时…

用AI绘画工具提升创作效率,这款神器你一定不能错过!

在如今的创作领域&#xff0c;无论是插画师、设计师&#xff0c;还是内容创作者&#xff0c;都在寻找能够提升效率的工具&#xff0c;而AI绘画工具的诞生无疑是一场创意革命。通过AI技术的支持&#xff0c;我们不再需要耗费大量时间在绘制基础草图或反复调整细节上&#xff0c;…

为什么要使用Golang以及如何入门

什么是golang&#xff1f; Go是一种开放源代码的编程语言&#xff0c;于2009年首次发布&#xff0c;由Google的Rob Pike&#xff0c;Robert Griesemer和Ken Thompson开发。基于C的语法&#xff0c;它进行了一些更改和改进&#xff0c;以安全地管理内存使用&#xff0c;管理对象…

Oracle故障诊断(一线DBA必备技能)之ADRCI(四)

1. 题记&#xff1a; 本篇博文继续详细介绍一线DBA必备技能—Oracle DB故障诊断工具ADRCI。 2. 使用 ADRCI 进行故障诊断的步骤 1. 查看警报日志 警报日志是故障诊断的重要信息源&#xff0c;它记录了数据库启动、关闭、错误消息等关键事件。 首先启动 ADRCI。在操作系统命…

基于SpringBoot的项目工时统计成本核算管理源码带教程

该系统是基于若依前后端分离的架构&#xff0c;前端使用vue2&#xff0c;后端使用SpringBoot2。 技术框架&#xff1a;SpringBoot2.0.0 Mybatis1.3.2 Shiro swagger-ui jpa lombok Vue2 Mysql5.7 运行环境&#xff1a;jdk8 IntelliJ IDEA maven 宝塔面板 系统与功…

嵌入式学习-网络-Day04

嵌入式学习-网络-Day04 1.IO多路复用 1.1poll poll同时检测键盘和鼠标事件 1.2epoll 2.服务器模型 2.1循环服务器模型 2.2并发服务器模型 多进程模型 多线程模型 IO多路复用模型 网络聊天室 项目要求 问题思考 程序流程图 1.IO多路复用 1.1poll int poll(struct pollfd *fds, n…

Java 面向对象基础

目录 1. 面向对象2. 类与对象3. 面向对象在内存中的执行原理4. 类和对象注意事项5. this 关键字6. 构造器6.1 什么是构造器?6.2 构造器作用6.3 构造器应用场景 7. 封装性7.1 什么是封装&#xff1f;7.2 封装的设计规范7.3 封装的书写 8. 实体JavaBean 正文开始 1. 面向对象 …

《华为云主机:1024的惊喜馈赠》

《华为云主机&#xff1a;1024的惊喜馈赠》 一、1024 华为送云主机之缘起&#xff08;一&#xff09;特殊日子的馈赠意义&#xff08;二&#xff09;华为云主机活动初衷 二、华为云主机领取攻略&#xff08;一&#xff09;领取条件全解析&#xff08;二&#xff09;具体领取步骤…