当前位置: 首页 > news >正文

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

相关文章:

安全见闻-web安全

web安全 一、web程序简介 1. Web程序的基本构成 2. 工作流程 3. 安全性 二、JavaScript代码库 1. 代码库的概念和用途 2. 常见的代码库 三、框架 1. 常见的前端框架 2. 常见的后端框架 四、数据库 1. 数据库的分类 2. 数据库的潜在漏洞 3. 学习数据库的重要性 五、…...

华为手机卸载系统应用的方法

摘要: 1.手机环境:手机需要开启开发者模式并使用usb连接电脑,并选择文件传输模式 2.电脑环境:使用鸿蒙工具箱进行傻瓜操作或安装adb工具进行命令卸载 3.鸿蒙工具箱和adb工具本质都是使用adb shell pm uninstall -k --user 0 xx…...

力扣算法笔记——生成随机数组

题目信息: 给两个随机数和N&#xff0c;生成M到N的随机不重复数组&#xff0c;且M<N。 示例&#xff1a;输入M 2, N5, 输出 [4,3,2,5]. 思路&#xff1a;洗牌算法&#xff0c;先遍历M到N之间所有的数字&#xff0c;将得到的结果存入一个集合中&#xff0c;将集合从后往前遍历…...

Anaconda和Pycharm超详细安装教程(2024版本+Win11)

详细安装&#xff1a;https://download.csdn.net/download/qq_40379132/89924782 一、安装Anaconda 1.1 下载Anaconda 在官方网站&#xff08;Free Download | Anaconda&#xff09;上下载适用于你的操作系统的 Anaconda 安装包。&#xff08;这里以windows为例&#xff09;…...

代码随想录:从中后/中前遍历序列构造二叉树

106. 从中序与后序遍历序列构造二叉树 用分治思想&#xff0c;后序遍历是左右中&#xff0c;中序遍历是左中右&#xff0c;后序遍历的最后一个元素就是根节点&#xff0c; 在中序遍历中找到它的位置&#xff0c;它前面的为左子树&#xff0c;后面的为右子树&#xff0c;并能计…...

2-134 基于matlab的图像边缘检测

基于matlab的图像边缘检测&#xff0c;采用六种算子(分别是gabor、拉普拉斯、priwitt、robert、sobel、wallis微分算子&#xff09;&#xff0c;对图象进行边缘检测比较&#xff0c;输出边缘检测结果。可对比效果优劣。程序已调通&#xff0c;可直接运行。 下载源程序请点链接…...

【Java并发编程】线程池详解

一、简介 随着计算机行业的飞速发展&#xff0c;摩尔定律逐渐失效&#xff0c;多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池&#xff1a;ThreadPoolExecutor 类&#xff0c;帮助开发人员管理线程并方便地执行并行任务。了…...

ThingsBoard规则链节点:GPS Geofencing Events节点详解

引言 1. GPS Geofencing Events 节点简介 2. 节点配置 3. 使用场景 3.1 物流跟踪 3.2 资产管理 3.3 安全监控 3.4 农业监测 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 GPS Geofencing Events 是 ThingsBoard 规则链中的一个重要节…...

Jmeter基础篇(19)JSR223预处理器

前言 JSR223预处理器是Apache JMeter中的一个组件&#xff0c;它允许用户使用任何支持Java Scripting API (JSR 223) 的脚本语言来执行预处理任务。这个功能非常强大&#xff0c;因为它让测试人员能够利用如Groovy、JavaScript&#xff08;Nashorn引擎&#xff09;、BeanShell…...

通过js控制css变量

在JavaScript中&#xff0c;你可以通过操作CSS变量&#xff08;也称为自定义属性&#xff09;来动态改变样式。CSS变量在CSS中使用 – 前缀定义&#xff0c;例如 --main-color: red;。在JavaScript中&#xff0c;你可以使用 document.documentElement.style.setProperty 方法来…...

Docker:容器化和虚拟化

虚拟化 虚拟化是一种资源管理技术&#xff0c;它将计算机的各种实体资源&#xff08;如CPU、内存、磁盘空间、网络适配器等&#xff09;予以抽象、转换后呈现出来&#xff0c;并可供分割、组合为一个或多个电脑配置环境。这些资源的新虚拟部分是不受现有资源的架设方式、地域或…...

OpenSSL

OpenSSL 概述 OpenSSL 是一个开源的、安全传输协议实现工具&#xff0c;广泛应用于数据加密与解密、证书生成与管理以及其他安全性相关的任务。在现代网络安全中&#xff0c;OpenSSL 被用于构建和维护 SSL/TLS 通信&#xff0c;确保数据在传输过程中的机密性和完整性。 简单来…...

CSS 常见选择器

1. 基础选择器 元素选择器 选择所有指定类型的 HTML 元素。 p {color: blue; }选择所有 p 标签&#xff0c;并将文字颜色设为蓝色。 类选择器 选择带有特定类名的元素&#xff0c;类名前加 .。 .container {margin: 20px; }选择类名为 container 的所有元素。 ID 选择器 选…...

Linux使用Dockerfile部署Tomcat以及jdk

资源准备 首先提供本教程所有资源包。 当然也可以根据自己需求去官网下载。 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;f31y #我们开始吧 首先我们需要一台linux操作系统的机器&#xff0c;当然windows也是可以的&#xff0c;本系列教程是基于Linux的&#…...

LC20. 有效的括号

用来熟悉一下栈的应用之括号匹配 题目链接 下面是大致思路 1.初始化:创建一个空栈,用于存储左括号。&#xff08;LC这题不用&#xff0c;自己写完整的需要&#xff09; 2.遍历字符串:从左到右依次扫描字符串中的每个字符。 3.处理左括号:如果是左括号,将其压入栈中。 4.处理右…...

基于springboot企业微信SCRM管理系统源码带本地搭建教程

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

【MTMSA】不确定缺失模态下基于情态翻译的多模态情感分析

MTMSA是基于TATE改进的&#xff0c;大致框架都和他一样&#xff0c;区别在于MTMSA没有提到tag&#xff0c;并且在多头注意力的部分进行了改进&#xff0c;也就是文中模态翻译模块&#xff0c;此外还加了两个损失函数。在TATE中有一章是不同设置的影响&#xff0c;里面有多个证明…...

【php常用公共函数】php获取指定时间段中有那几年并输出年份的起始时间和结束时间

php获取指定时间段中有那几年并输出年份的起始时间和结束时间 实现思路实现代码输出结果 实现思路 解析输入的时间&#xff1a;将输入的时间字符串转换为DateTime对象。计算年份范围&#xff1a;从开始年份到结束年份&#xff0c;生成一个包含所有年份的数组。输出年份的起始和…...

CTF-PWN: 什么是_IO_FILE?

重要概念:fopen()返回的是一个结构体的指针 _IO_FILE 结构体在什么时候被创建&#xff1f; _IO_FILE 结构体的实例是在程序使用标准 I/O 函数&#xff08;如 fopen、fclose、fread、fwrite 等&#xff09;时创建和管理的。这个结构体实际上是 GNU C Library (glibc) 用于处理…...

前端八股文第二篇

11.事件循环 事件循环&#xff08;Event Loop&#xff09;是 JavaScript 运行时中的一种机制&#xff0c;用于处理异步操作和事件驱动的编程。在浏览器环境中&#xff0c;事件循环是指浏览器通过事件队列&#xff08;Event Queue&#xff09;来管理和调度异步任务的执行顺序。…...

springboot汽车保修服务管理系统-计算机毕业设计源码00052

摘 要 随着汽车数量的不断增加和汽车保修服务需求的日益增长&#xff0c;建立一套高效的汽车保修服务管理系统变得至关重要。基于Spring Boot框架的汽车保修服务管理系统旨在整合汽车保修流程&#xff0c;简化管理流程&#xff0c;提高服务质量和用户体验未来&#xff0c;我们将…...

分布式架构搭建博客网站

目录 运行环境基础配置需求准备工作配置静态ip修改主机名及host映射开启防火墙时间同步配置免密ssh登录 环境搭建Server-Web端安装LNMP环境软件Server-NFS-DNS端上传博客软件Server-NFS-DNS端设置NFS共享Server-Web设置挂载远程共享目录nginx设置在数据库中创建数据库和用户重启…...

python-opencv给图片或视频去水印

文章目录 引言inpaint函数的使用方法鼠标事件回调函数cv2.setMouseCallback介绍去水印步骤实现代码 引言 本文主要基于cv2.inpaint函数实现图片的水印去除。 inpaint函数基于图像修复算法&#xff0c;通过对缺陷区域周围像素的分析和插值&#xff0c;生成合适的像素值来填充缺…...

免费送源码:Java+ssm+Springboot Springboot手办定制销售系统 计算机毕业设计原创定制

Springboot手办定制销售系统 摘 要 随着人们生活水平的提高和互联网的发展&#xff0c;人们消费思想和消费方式的逐渐改变&#xff0c;使得消费者开始追求自身品味和个性。手办定制就是在这种条件下应运而生。手办定制是基于客户需求来定制产品&#xff0c;满足客户对其功能、结…...

卡夫卡的使用

关于消息队列的使用 一、消息队列概述 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用解耦&#xff0c;异步消息&#xff0c;流量削锋等问题&#xff0c;实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveM…...

mac|maven项目在idea中连接redis

安装maven brew install maven idea-setting导入redis插件 idea新建maven项目 构建系统选择maven 项目右侧数据库图标导入redis 新建一个数据库&#xff0c;名称必须为数字&#xff0c;测试一下是否可以连接&#xff0c;连接成功后选择确定 pom.xml导入redis <depende…...

Python基础学习------第一天

print("hello world") 1.括号和引号&#xff0c;必须使用的是英文 被双引号包围起来的称为字符串。 python注释&#xff1a;单行注释&#xff1a;1.井号# 2.多行注释 &#xff1a;""" """ print输出多个内容是中间用逗号隔开就好…...

MySQL的SQL语句之触发器和存储过程的应用

触发器 Trigger 一.触发器 作用&#xff1a;当检测到某种数据表发生数据变化时&#xff0c;自动执行操作&#xff0c;保证数据的完整性。 1.创建一个触发器 如上图所示&#xff0c;查看这个create的帮助信息的时候&#xff0c;这个create trigger就是创建触发器的意思。 如…...

【MD5】密码加密之加盐算法

哈喽&#xff0c;哈喽&#xff0c;大家好~ 我是你们的老朋友&#xff1a;保护小周ღ 本期主要是给大家分析一下, 密码的如果加密存储的, 学习加盐算法的思想, 通过一个简单的案例, 即可快速学习. 一起来看看叭~ 适用于编程初学者&#xff0c;感兴趣的朋友们可以订阅&…...

服务器虚拟化

前言 服务器虚拟化是一种技术&#xff0c;它通过将一台物理服务器的软件环境分割成多个独立分区&#xff0c;使每个分区都能模拟出一台完整的虚拟服务器。这种技术利用虚拟化技术充分发挥服务器的硬件性能&#xff0c;提高运营效率&#xff0c;节约能源并降低经济成本。 通过…...

东莞网站建设设计公司/十大品牌营销策划公司

2019独角兽企业重金招聘Python工程师标准>>> 其实想做聚焦时提示文字不消失,光标在提示语前面,就像正常的placeholder属性,但是setSelectionRance()方法不是很好用,后面学习之后再制作 <script type"text/javascript"> (function($,win,do…...

网上公司注册/英文网站seo发展前景

实验四 查找----基于词频的文件相似度 分析&#xff1a; 该实验的难度在于对倒排索引表的构建&#xff0c;在该实验中&#xff0c;我采用了链表作为索引表&#xff0c;哈希表作为存储单词的表&#xff0c;在索引表内存储单词的位置用来访问哈希表。另外一个难点在于&#xff0…...

永州网站建设优化/谷歌推广怎么做最有效

相关阅读&#xff1a;参加IE9开发大赛 赢取现金大奖微软最顶级平台技术会议PDC10全程视频播放Microsoft Web平台——优秀项目展示Windows Phone 7 MSDN开发中心微软Web平台优秀项目精选推荐&#xff1a;世界顶级论坛、社区程序&#xff1a;bbsmax论坛世界上最大的自承载博客工具…...

中国建设教育网站/百度权重3的网站值多少

前几天群里有人问我为什么直接操作数据库发布文章&#xff0c;插入成功了&#xff0c;却显示不出来。当时在外面玩儿&#xff0c;没法帮他&#xff0c;今天还没解决这个问题&#xff0c;抽点时间帮他一把。 WordPress的文章存在与wp_posts数据表中&#xff0c;里面有很多字段&…...

国外网站怎样建设/深圳市住房和建设局

原文&#xff1a;http://coolketang.com/staticCoding/5a9925ad9f5454507417fc94.html 1. 一个类可以继承另一个类的方法、属性和其它特性。当一个类继承其它类时&#xff0c;继承的类叫子类&#xff0c;被继承的类叫父类。继承是区分类和其它类型的一个重要特征。 2. 首先定义…...

怎么做微网站/免费制作网页平台

一个类型允许定义多个实例构造器&#xff0c;在使用过程中确实是十分方便的。但是&#xff0c;在定义这些构造器时&#xff0c;如果稍不留神&#xff0c;可能就使你的代码编译后产生了好多不必要的垃圾&#xff0c;增加了程序集的大小&#xff0c;也不够简洁。 例如&#xff1a…...