网站常见安全漏洞 | 青训营

Powered by:NEFU AB-IN

文章目录

  • 网站常见安全漏洞 | 青训营
    • 网站基本组成及漏洞定义
    • 服务端漏洞
      • **SQL注入**
      • **命令执行**
      • **越权漏洞**
      • **SSRF**
      • **文件上传漏洞**
    • 客户端漏洞
      • **开放重定向**
      • **XSS**
      • **CSRF**
      • **点击劫持**
      • **CORS跨域配置错误**
      • **WebSocket**

网站常见安全漏洞 | 青训营

  • 网站常见安全漏洞-网站基本组成及漏洞定义

  • 网站常见安全漏洞-服务端漏洞介绍

  • 网站常见安全漏洞-客户端漏洞介绍

  • 网站常见安全漏洞-总结及强调网络安全法

网站基本组成及漏洞定义

image.png

网关在计算机网络中指的是连接两个不同网络或协议的设备或系统。它的作用是将传入的数据包从一个网络发送到另一个网络中,充当网络的出口或入口。网关可以实现网络之间的通信和数据传输。

网关的主要功能包括地址转换、协议转换、数据加密和解密、流量控制、访问控制等。它还负责将传入的数据包路由到正确的目标主机,并在多个网络之间进行数据传输和转发。

NGINX 是一款高性能的开源网络代理服务器,它可以用作反向代理服务器、负载均衡器、HTTP缓存和网关等。作为网关,NGINX可以处理与网络之间的数据交换,转发请求,并将请求流量分发到内部的服务器集群。通过配置NGINX,可以实现对外部请求的流量控制、访问控制和安全性增强等功能。

因此,可以说NGINX可以充当网关的角色,但它不仅仅是一个网关,还具备其他众多的功能。

image.png

网关是在计算机网络中起到连接不同网络或网络段之间的作用,它可以用于数据的路由、过滤、转换等功能。下面是一些常见的网关作用和工作流程例子:

  1. 路由网关:路由网关用于连接不同的网络,并根据数据包的目的地址,决定将数据包发送到哪个网络上。例如,Cisco的路由器就是一种常见的路由网关。

  2. 防火墙网关:防火墙网关用于监控和控制网络流量,以保护网络免受恶意攻击和未经授权的访问。例如,Checkpoint的防火墙就是一种常见的防火墙网关。

  3. SSL VPN网关:SSL VPN网关用于提供远程用户安全访问企业网络的功能,通过建立安全的虚拟专用网络(VPN)隧道,使远程用户可以安全地访问内部资源。例如,Juniper的SSL VPN网关就是一种常见的SSL VPN网关。

  4. API网关:API网关用于管理和保护企业的应用程序接口(API),它可以提供身份验证、访问控制、流量控制等功能。例如,Kong是一种常见的开源API网关。

网关的工作流程通常包括以下步骤:

  1. 接收数据包:网关从连接的网络或主机接收数据包。
  2. 解析数据包:网关解析数据包的头部信息,如源地址、目的地址、协议等。
  3. 决策处理:根据预设的策略和规则,网关决定如何处理该数据包,如路由到其他网络、进行访问控制、过滤等。
  4. 执行处理:网关执行相应的处理操作,如进行数据包的转发、修改数据包的内容等。
  5. 发送数据包:网关将处理后的数据包发送到下一个网络或主机。

举一个具体的网关实例是防火墙网关。当数据包进入防火墙网关时,网关会解析数据包的头部信息,如源IP地址、目的IP地址、端口号等。接着,网关根据预设的策略和规则,判断该数据包是否满足安全要求,如果不满足,网关可能会进行阻止或拦截处理;如果满足,网关可以根据策略将数据包转发到特定的网络或主机。同时,防火墙网关还可以对数据包进行深层次的检查和修改,以提供额外的安全保护。最后,网关将处理后的数据包发送到目标网络或主机。


image.png


服务端漏洞

  • 第三方组件漏洞 如log4j
  • SQL 注入
  • 命令执行
  • 越权漏洞
  • SSRF
  • 文件上传漏洞

SQL注入

可能查出别的数据,通过union select
image.png

  1. 直接拼接语句时不安全的,用ORM包,以对象的方式查询

  2. Mybatis 占位符

    • 若使用#,把它当成动态的字段,是直接拼接的效果,不存在漏洞
    • 若使用$,不会对参数值进行转义,会导致潜在的注入风险
      假设我们有一个查询用户信息的SQL语句:
    SELECT * FROM users WHERE username = $username
    

    假设攻击者输入的username参数为:' OR '1'='1'-- (注意末尾的注释符号,注释掉原本的闭合单引号,并追加额外的SQL语句,从而影响整个查询的逻辑),那么最终拼接的SQL语句将会变成:

    SELECT * FROM users WHERE username = '' OR '1'='1'--'
    

    这样,由于'1'='1'始终为真,攻击者可以绕过用户名验证,获取到所有的用户信息。

    使用#号可以防止这种注入攻击,因为#会将参数值进行转义并添加单引号,即使攻击者输入恶意字符,也不会产生注入漏洞。

  3. Golang常见错误写法

    比如是图片中插入一个if语句,1始终为真,一直执行第二个参数的内容,会让服务器休眠10s,就可以让外面判断是否可以SQL注入,从而可以进一步判断表明等等

    image.png

防护措施(对外部数据进行数据清理)

image.png


命令执行

image.png

防护方式

  • 设置白名单,只能操控这几个值
  • 设置黑名单,过滤字符

image.png


越权漏洞

类别

  • 未授权,不需要认证,拿到数据

  • 水平越权,查询同等级别的账户信息

    image.png

  • 垂直越权,使用别的权利

    image.png


SSRF

SSRF代表"Server-Side Request Forgery",翻译成中文是“服务器端请求伪造”。它是一种网络安全漏洞,攻击者可以通过操纵服务器发起的请求来访问、探测或攻击服务器内部的资源,甚至可能用于攻击内部系统。通常,攻击者会通过构造恶意请求来欺骗服务器,使其执行不安全的操作,例如向内部服务器发起HTTP请求或访问本地文件系统。

以下是一些SSRF的具体例子:

  1. 访问内部资源: 攻击者可以构造恶意请求,使服务器发起请求到内部的数据库、文件系统或其他敏感资源,然后将结果返回给攻击者。这可以用于获取敏感数据或执行未授权的操作。

  2. 绕过防火墙或内部网络访问限制: 攻击者可以利用SSRF来访问内部系统,绕过外部服务器的防火墙或网络访问控制列表,进而攻击内部系统。

  3. 攻击本地资源: 攻击者可以利用SSRF来尝试访问本地文件系统,例如file:///协议,从而读取或修改服务器上的文件。

  4. 攻击其他服务: 攻击者可以构造请求,使服务器发起攻击其他服务,例如发起DDoS攻击,这可能会导致其他服务不可用。

防止SSRF攻击通常涉及到验证和过滤输入,确保服务器不会发起恶意请求。此外,网络架构的设计也可以减轻SSRF的风险,如将服务器限制在受信任的网络环境中,以防止访问敏感资源。

防护方式

  1. 尽量这些不要让内网地址可以公网访问
  2. URL post只在白名单中选

image.png


文件上传漏洞

  • PHP脚本注入

  • image.png

防护方式

image.png


客户端漏洞

  • 开放重定向
  • XSS
  • CSRF
  • 点击劫持(clickjacking)
  • CORS跨域配置错误
  • WebSocket

开放重定向

可能后面的URL不可控

image.png


XSS

image.png

image.png

防护方法

对输入(标签和属性)进行控制,有些onload onclick后面可以跟代码,需要控制
image.png


CSRF

image.png

防护方式

image.png


点击劫持

image.png

不让使用 <iframe> 元素嵌入到一个网页中的另一个网页或站点

  • X-FRAME:deny 默认拒绝;sameorigin:允许
  • 配置白名单

image.png


CORS跨域配置错误

CORS代表"跨源资源共享"(Cross-Origin Resource Sharing),是一种用于在Web应用程序中处理跨域HTTP请求的安全机制。跨域请求是指一个网页上的代码试图向不同域(协议、域名或端口)的服务器发起HTTP请求。由于浏览器的同源策略(Same-Origin Policy)限制,跨域请求通常是被禁止的。CORS是一种通过浏览器的协作机制来允许跨域请求的方法。

image.png

Middleware(中间件)是一种常见的软件设计模式,它允许你在一个应用程序的请求-响应过程中插入、扩展或修改功能,而不需要修改应用程序的核心代码。中间件位于应用程序的处理流程中,可以对请求和响应进行预处理、后处理或者转换。
image.png


WebSocket

WebSocket(Web套接字)是一种用于在客户端和服务器之间进行全双工通信的网络协议。与传统的HTTP协议不同,WebSocket允许服务器主动向客户端发送数据,而不需要客户端明确地请求。这使得WebSocket非常适用于实时应用程序,如在线游戏、聊天应用、实时协作工具和实时数据传输等。

以下是WebSocket与HTTP之间的主要区别:

  1. 通信模式:

    • HTTP: HTTP是一种请求-响应协议,客户端发送请求,服务器返回响应,然后连接关闭。这是一种单向通信模式。
    • WebSocket: WebSocket是全双工协议,允许客户端和服务器之间建立持久连接,双方可以同时发送和接收数据,而不需要不断地建立和关闭连接。
  2. 连接开销:

    • HTTP: 每次客户端需要与服务器通信时,都需要建立一个新的HTTP连接,这需要时间和资源。
    • WebSocket: WebSocket连接是持久的,一旦建立,可以保持打开状态,允许实时通信,减少了连接开销。
  3. 协议头:

    • HTTP: HTTP协议的请求和响应通常包含大量的头部信息,这些头部信息用于描述请求的性质和服务器的响应。
    • WebSocket: WebSocket头部相对较小,协议更轻量级,因此在通信期间传输的数据量更小,延迟更低。
  4. 端口:

    • HTTP: HTTP通常使用标准端口80(HTTP)或443(HTTPS)。
    • WebSocket: WebSocket使用标准端口80或443,但也可以使用其他端口。
  5. 应用场景:

    • HTTP: 适用于传统的请求-响应应用程序,如网页浏览、RESTful API调用等。
    • WebSocket: 适用于需要实时双向通信的应用程序,如在线游戏、聊天应用、实时协作工具和实时数据传输。

总之,WebSocket是一种更适合实时和双向通信的协议,它在一次连接的基础上允许客户端和服务器之间进行长时间的数据交换。而HTTP更适用于传统的请求-响应模式,每个请求都是独立的,连接会在请求和响应之间关闭。选择使用哪种协议取决于应用程序的需求。

image.png

image.png

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

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

相关文章

用户端Web自动化测试_L4

目录&#xff1a; selenium多浏览器处理执行 javascript 脚本headless无头浏览器使用capability配置参数解析企业微信实战cypress测试框架介绍Playwright测试框架介绍 1.selenium多浏览器处理 多浏览器测试背景 用户使用的浏览器(firefox,chrome,IE 等)web 应用应该能在任何…

基于黏菌算法优化的BP神经网络(预测应用) - 附代码

基于黏菌算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于黏菌算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.黏菌优化BP神经网络2.1 BP神经网络参数设置2.2 黏菌算法应用 4.测试结果&#xff1a;5.Matlab代码 摘要…

【算法系列篇】前缀和

文章目录 前言什么是前缀和算法1.【模板】前缀和1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 【模板】二维前缀和2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 寻找数组的中心下标3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 除自身以外的数组的乘积4.1 题目要求4.2 做题思…

Android Jetpack Compose中使用字段验证的方法

Android Jetpack Compose中使用字段验证的方法 数据验证是创建健壮且用户友好的Android应用程序的关键部分。随着现代UI工具包Jetpack Compose的引入&#xff0c;处理字段验证变得更加高效和直观。在这篇文章中&#xff0c;我们将探讨如何在Android应用中使用Jetpack Compose进…

Nacos配置管理服务

统一配置管理 功能&#xff1a;对配置文件相同的微服务进行配置文件的统一管理。 统一配置管理是解决场景&#xff1a;普通情况下&#xff0c;多个相同功能的微服务实例&#xff0c;更改配置的话得一个一个更改后重启的情况。 核心配置放在配置管理服务中&#xff0c;启动时…

MathType7MAC中文版数学公式编辑器下载安装教程

如今许多之前需要手写的内容都可以在计算机中完成了。以前我们可以通过word输入一些简单的数学公式&#xff0c;但现在通过数学公式编辑器便可以完成几乎所有数学公式的写作。许多简单的数学公式&#xff0c;我们可以使用输入法一个个找到特殊符号并输入&#xff0c;但是对于高…

JavaScript——为什么静态方法不能调用非静态方法

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

【Java并发】聊聊对象内存布局和syn锁升级过程

对象存储解析&#xff1a;一个空Object对象到底占据多少内存&#xff1f; 对象内存布局 Mark Word占用8字节&#xff0c;类型指针占用8个字节&#xff0c;对象头占用16个字节。 好了&#xff0c;我们来看一下一个Object对占用多少空间&#xff0c; 因为java默认是开启压缩…

C语言:指针和数组(看完拿捏指针和数组)

目录 数组名的理解&#xff1a; 一维数组&#xff1a; 解析&#xff1a; 字符数组&#xff1a; 解析&#xff1a; 解析&#xff1a; 字符串数组&#xff1a; 解析&#xff1a; 解析&#xff1a; 一级指针&#xff1a; 解析&#xff1a; 解析&#xff1a; 二维数组&a…

学习ts(七)泛型

定义 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型&#xff0c;在实例化时作为参数指明这些类型。在ts中&#xff0c;定义函数、接口或类的时候&#xff0c;不预先定义好具体的类型&#xff0c;而在使用的时候在指定类型的一种特性。 例子&#xff…

MinDoc:针对IT团队的文档、笔记系统

作为一名IT从业者&#xff0c;无论是在公司团队中&#xff0c;还是在平时自己写一些笔记、博客等文档&#xff0c;我都习惯使用markdown来进行书写。在使用过许多支持markdown语法的系统或软件&#xff08;如Typora、未知、我来、思源、觅道等&#xff09;后&#xff0c;我总觉…

Adobe After Effects软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Adobe After Effects是一款由Adobe公司开发的数字视觉效果和动态影像处理软件&#xff0c;它被广泛应用于电影、电视、广告、游戏等领域。After Effects可以与其他Adobe软件如Photoshop、Illustrator、Premiere等无缝结合&#…

neo4jd3拓扑节点显示为节点标签(自定义节点显示)

需求描述&#xff1a;如下图所示&#xff0c;我的拓扑图中有需要不同类型的标签节点&#xff0c;我希望每个节点中显示的是节点的标签 在官方示例中&#xff0c;我们可以看到&#xff0c;节点里面是可以显示图标的&#xff0c;现在我们想将下面的图标换成我们自定义的内容 那…

什么是NetDevOps

NetDevOps 是一种新兴的方法&#xff0c;它结合了 NetOps 和 DevOps 的流程&#xff0c;即将网络自动化集成到开发过程中。NetDevOps 的目标是将虚拟化、自动化和 API 集成到网络基础架构中&#xff0c;并实现开发和运营团队之间的无缝协作。 开发运营&#xff08;DevOps&…

SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)

在上一篇文章讲述zuul的时候&#xff0c;已经提到过&#xff0c;使用配置服务来保存各个服务的配置文件。它就是Spring Cloud Config。 一、简介 在分布式系统中&#xff0c;由于服务数量巨多&#xff0c;为了方便服务配置文件统一管理&#xff0c;实时更新&#xff0c;所以需…

【UE5:CesiumForUnreal】——3DTiles数据属性查询和单体高亮

目录 0.1 效果展示 0.2 实现步骤 1 数据准备 2 属性查询 2.1 射线检测 2.2 获取FeatureID 2.3 属性查询 2.4 属性显示 3 单体高亮 3.1 构建材质参数集 3.2 材质参数设置 3.3 添加Cesium Encode Metadata插件 3.4 从纹理中取出特定FeatureId属性信息 3.5 创建…

UE4 材质学习笔记

CheapContrast与CheapContrast_RGB都是提升对比度的&#xff0c;一个是一维输入&#xff0c;一个是三维输入&#xff0c;让亮的地方更亮&#xff0c;暗的地方更暗&#xff0c;不像power虽然也是提升对比度&#xff0c;但是使用过后的结果都是变暗或者最多不变&#xff08;值为1…

Fedora Linux 的家族(三):实验室

导读本文将对 Fedora Linux 实验室版本进行更详细的介绍。 根据个人需求&#xff0c;每个人使用计算机的方式都不同。你可能是一位设计师&#xff0c;需要在计算机上安装各种设计软件。或者你可能是一位游戏玩家&#xff0c;所以需要一个支持你喜欢的游戏的操作系统。有时候我们…

骨传导耳机哪款比较好,几款骨传导耳机品牌推荐

相对于传统耳机&#xff0c;骨传导耳机的佩戴方式更加舒适。传统耳机需要插入耳道&#xff0c;可能会造成不适甚至痛感&#xff0c;而骨传导耳机则不需要直接接触耳朵&#xff0c;大大提高了佩戴的舒适度。并且骨传导耳机可以实现外界环境的感知。传统耳机会将耳朵与外界隔绝&a…

centos7设置静态IP地址

安装完成系统后&#xff0c;接下来就是配置静态IP地址&#xff0c;如下&#xff1a; 进入编辑模式vim /etc/sysconfig/network-scripts/ifcfg-ens33 文件名不一定是ifcfg-ens33&#xff0c;到/etc/sysconfig/network-scripts下面找下是哪个文件 修改 &#xff1a; BOOTPROTO…