软件安全测试-web安全测试基础

news2024/12/23 20:28:08

目录

1. Web安全的测试范围

2.Web安全的四要素

3. Web安全的分类

4. Web安全的类别排名​

5. 零时差攻击

6. Web安全的载体

7. 了解软件安全测试相关的Cooike,Session,Token

7.1 会话级鉴权及认证技术

7.2 会话安全管理需要授权和鉴权两个步骤

7.3 Cookie 

7.3.1 Cookie类型

7.3.2 Cookies测试(session测试同)

7.3.3 如何使用Cookie来保持登录状态

7.4 Session

7.4.1 session安全测试的原理

7.4.2 session安全测试的过程

7.4.3 Session的其他测试

7.4.4 如何使用Session来保持登录状态

7.4.5 Session的两种实现方式(也就是传递方式)

7.5 Token

7.5.1 Token概述

 7.5.2 使用Token保持会话的原理

 7.5.3 JWT

7.6 Session与Cookie的区别

7.6.1 存储位置不同

7.6.2 安全性不同

7.6.3 性能不同

7.6.4 会话的安全管理

7.6.5 其他

7.7 Web客户端的作用

7.8 Web服务端作用


1. Web安全的测试范围

服务器系统的漏洞,权限,网络端口的管理,Tomcat,Apache的配置,浏览器本身的安全配置,web应用程序本身的前端,后端,数据库安全等。

2.Web安全的四要素

安全性

可靠性

可用性

完整性

3. Web安全的分类

web安全性包括但不仅限于下面几个部分,做好系统,数据库,服务器配置的安全测量,提高整体的安全防护等级,确保开发的应用程序遵从安全标准开发。

 

4. Web安全的类别排名

5. 零时差攻击

 0day又叫零时差攻击,是指被发现后立即被恶意利用的安全漏洞,通俗地讲,即安全补丁与瑕
疵曝光的同一日内,相关的恶意程序就出现,这种攻击往往具有很大的突发性与破坏性。

  • Oday就是只有你知道的一个漏洞!
  • 1day就是刚刚公布的漏洞(没有超过一天)
  • nday就是这个漏洞已经公布出来了N天啦!

6. Web安全的载体

web安全的载体是网络协议,而网络协议中最常见的是http协议。

Http协议的性质:

  • HTTP是简单的
  • HTTP是可扩展的
  • HTTP是无状态,有会话的
  • HTTP是可靠的
  • Web客户端的作用

7. 了解软件安全测试相关的Cooike,Session,Token

7.1 会话级鉴权及认证技术

  • cookie管理、
  • session会话技术
  • token令牌技术

Cookie管理是浏览器的一种策略,用于解决http协议是无状态连接问题的, Cookie可以记录用户浏览历史,辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据。
不管是session会话技术还是token令牌技术都是基于cookie管理进行的。

7.2 会话安全管理需要授权和鉴权两个步骤

  • 授权:相当于下发一个通行证(通行证保存cookie管理器)
  • 鉴权:鉴定是否有权访问(判断有请求是否正确携带通行证)

7.3 Cookie 

7.3.1 Cookie类型

  • 会话Cookie:保存在内存中,由浏览器维护,浏览器关闭后消失。
  • 持久性Cookie:保存在硬盘里,有过期时间,用户手动清理或到了过期时间,持久性Cookie会被删除。
  • Expires属性:Cookie中的maxAge或者Expired用来表示该属性,单位为秒

7.3.2 Cookies测试(session测试同)

  • Cookies是否起作用;  
  • Cookies是否按预定的时间进行保存;
  • 刷新对Cookies有什么影响
  • 避免保存敏感信息到cookie文件中。如用户名、密码

作用域  不同应用系统不同作用域。下图中为单个应用系统,Path对应的是这个cookie的作用域,斜杠表示根目录,即该条cookeie作用域为整个应用系统

Set-Cookie: access-token=LluyJIfAggsBH_woZgQAledLq3ZJzNwOD501WuvHNdjV5JthEWw; Path=/
  • 屏蔽 Cookie,检查当Cookie 被屏蔽时Web 系统会出现什么问题
  • 篡改Cookie,如果某些存储下来的Cookie 被篡改了,或者被删除了,Web 系统会出现什么问题吗?优秀的设计则会检测到Cookie 数据的篡改,及时更新替换Cookie 文件
  • Cookie 加密测试,检查存储的Cookie 文件内容,看是否有用户名、密码等敏感信息存储,并且未被加密处理。某些类型的数据即使是加密了也绝对不能存储在Cookie 文件中的,例如:信用卡号。
  • HttpOnly 属性的设置:把Cookie 的HttpOnly 属性设置为True 有助于缓解跨站点脚本威胁,防止Cookie 被窃取
  • Secure 属性的设置:把Cookie 的Secure 属性设置为True,在传输Cookie 时使用SSL连接,能保护数据在传输过程中不被篡改
  • Cookie 过期日期设置的合理性:检查是否把Cookie 的过期日期设置得过长

7.3.3 如何使用Cookie来保持登录状态

7.4 Session

  • 用户第一次请求服务器时,服务器端会生成一个sessionId
  • 服务器端将生成的sessionId返回给客户端,通过set-cookie
  • 客户端收到sessionId会将它保存在Cookie中,当客户端再次访问服务端时会带上这个sessionId
  • 当服务端再次接收到来自客户端的请求时,会先去检查是否存在sessionId,不存在就新建一个sessionId重复1,2的流程,如果存在就去遍历服务端的session文件,找到与这个sessionId相对应的文件,文件中的键值便是sessionId,值为当前用户的一些信息
  • 此后的请求都会交换这个 sessionId ,进行有状态的会话

 

7.4.1 session安全测试的原理

Session是应用系统对浏览器客户端身份认证的属性标识,在用户退出系统时应将客户端session认证属性标识清空。如果未能及时清空客户端session标识,下次登录时系统会重复利用该session标识进行认证会话。攻击者可以利用该漏洞生成固定的session会话,诱骗用户利用攻击者生成的固定会话进行系统登录,从而导致用户会话认证被窃取。

7.4.2 session安全测试的过程

在注销退出系统时,对当前浏览器授权 SessionID 值进行记录。再次登录系统,将本次授权 SessionID 值与上次进行比对校验。判断服务器是否使用与上次相同的 SessionID 值进行授权认证,若使用相同 SessionID 值则存在固定会话风险.

  • 截取注销退出时请求中的sessionid
  • 截取再次登录时的sessionid

7.4.3 Session的其他测试

  • session的创建时间点,是打开浏览器访问开始创建session?还是用户登陆时开始创建session? 还是其它情况下创建的
  • session的删除时间点,过期文件是否删除,关闭浏览器时,session是否会删除?当有多个窗口时,是全部关掉还是关掉一个会删除session?
  • session超时,基于Session原理,需要验证系统session是否有超时机制,还需要验证session超时后功能是否还能继续走下去。

        测试方法:   

        1)打开一个页面,等着10分钟session超时时间到了,然后对页面进行操作,查看效果。  

        2)多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB页执行退出操作,马上在另外一个页面进行要验证的操作,查看是能继续到下一步还是到登录页面。

  • session互窜,即是用户A的操作被用户B执行。

        测试方法:

        多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB页执行退出操作,登陆用户B, 此时两个TAB页都是B的session,然后在另一个A的页面执行操作,查看是否能成功。 预期结果:有权限控制的操作,B不能执行A页面的操作,应该报错,没有权限控制的操作,B执行了A页面 操作后,数据记录是B的而不是A的

  • Session垃圾回收
  • 关闭浏览器同时关闭session
  • Session 销毁
  • session丢失,代码问题
  • 不同浏览器Session的共享机制不一致

        IE中,所有打开的IE窗口(IE 进程)共享一个session。除非,用户通过菜单 File > New session  打开新窗口,或者使用命令行参数 iexplore.exe -nomerge 来打开IE。  另外,当所有IE窗口被关闭后,session 结束。

  • 服务器端是否设置了最大并发session数量
  • 防止由于登录人数过多,造成服务器内存被消耗殆尽或服务器无响应的情况。
  • 刷新操作对session是否存在影响
  • 登录并进行相关操作后,退出系统,点击浏览器中的后退按钮,是否能回到刚才所做的操作页面
  • 登录后,进入一个页面后,能否将该页面地址拷贝后,再打开一个新的浏览器,直接粘贴该页面地址后,就能进行相关操作
  • 若后台的网络架构使用了负载均衡,要考虑在同一客户访问的页面被提交到了不同的服务器后,session能否正确共享

        例如:用户登陆后的请求被A服务器处理,但是用户接下来的操作却被B服务器处理,此时登录后的session是否能够被正确共享

  • 若创建session时,由于环境故障(IE死机,或网络暂时断开等),造成session创建异常或失败,系统会如何反应
  • 若创建session时,由于环境故障(IE死机,或网络暂时断开等),造成session创建异常或失败,若环境恢复后,系统是否会自动生成session
  • 进行大量用户并发登录时,是否会造成session创建时间延时,导致无法正常创建session

7.4.4 如何使用Session来保持登录状态

7.4.5 Session的两种实现方式(也就是传递方式)

  • 通过Cookie实现
  • 通过URL重写来实现

7.5 Token

7.5.1 Token概述

 7.5.2 使用Token保持会话的原理

  • 用户通过用户名和密码发送请求。
  • 程序验证。
  • 程序返回一个签名的token给客户端。
  • 客户端储存token,并且每次用于每次发送请求。
  • 服务端验证token并返回数据。

 7.5.3 JWT

 

 

7.6 Session与Cookie的区别

7.6.1 存储位置不同

Session是存在服务器端的,而Cookie是存在客户端的

7.6.2 安全性不同

Session不会受浏览器端的设置影响,可记录每个访问者的信息,独立在服务器端,比Cookie安全!

Session是存在内存中的,浏览器关闭它也就“死”了;Cookie是以文件方式存在的,可以修改其“存活”时间

7.6.3 性能不同

session 存放在服务端,过多会影响服务器性能,而Cookie是存放在客户端,没有性能影响

7.6.4 会话的安全管理


7.6.5 其他

  • 服务端保存状态机制需要在客户端做标记,所以Session可能借助Cookie机制
  • Cookie通常用于客户端保存用户的登录状态
  • Session是可以存取任何类型的数据的,但是Cookie只能存入字符串
  • Cookie存储数据大小有限制,Session没有限制

7.7 Web客户端的作用

  • 用来发送HTTP请求
  • 接收服务器响应
  • 把服务器返回的HTML代码渲染成界面Web客户端来主要是浏览器。

7.8 Web服务端作用

  • 监听客户请求
  • 处理客户端的简单请求(一般静态页面)
  • 客户端与数据库之间的屏障
  • 处理复杂系统的业务和数据库的访问

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

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

相关文章

单例模式(史上最全)

文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新 史上最全 面试必备 2000页 面试必备 大厂必备 涨薪必备 免费赠送 经典…

0121 动态规划 Day10

剑指 Offer 46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。…

Python——翻转字符串

题目介绍 以空格为分割,将字符串中的每个单词的字母位置不变,单词顺序从后往前翻转 例如:I am a student. 变成:student. a am I Python中的标准库是为了提高程序员开发效率,减少学习成本,而设计的一系列方…

spring——Spring Bean定义

在 XML 配置的<beans> 元素中可以包含多个属性或子元素&#xff0c;常用的属性或子元素如下表所示。 属性名称描述idBean 的唯一标识符&#xff0c;Spring IoC 容器对 Bean 的配置和管理都通过该属性完成。id 的值必须以字母开始&#xff0c;可以使用字母、数字、下划线等…

SpringCloud Gateway网关的使用与介绍

目录 1. gateway简介 1.1 是什么 1.2 作用 1.3 主要特征 1.4 与zuul的主要区别 1.5 主要组件 1.6 架构图 2. 开发示例 2.1 创建一个gateway模块 2.2 与nacos结合使用 2.2.1 默认规则 2.2.2 通过配置文件配置路由 2.2.3 动态路由 1. gateway简介 1.1 是什么 Spri…

Vulnhub靶机:PRIME_ 1

目录介绍信息收集主机信息探测主机信息探测网站探测目录爆破排雷dirsearch强制访问文件包含漏洞利用WordPress提权wordpress配置文件内核提权介绍 系列&#xff1a;Prime&#xff08;此系列共1台&#xff09; 发布日期&#xff1a;2019年9月1日 难度&#xff1a;初-中 运行环境…

在 Istio 服务网格中使用 Argo Rollouts 实现智能的渐进式发布

1 Argo Rollouts 介绍 Kubernetes 原生的 Deployment 利用 Rolling Update 滚动更新的策略在应用升级时提供基本的安全保证&#xff08;例如就绪探针&#xff09;。然而默认的滚动更新策略存在着一些明显的缺点&#xff0c;例如&#xff1a; 无法控制流向新版本的流量。无法控…

tensorflow入门(四)如何用tensorflow训练神经网络

参考 如何用tensorflow训练神经网络 - 云社区 - 腾讯云 在使用神经网络解决实际的分类或回归问题时需要设置好参数取值。下面介绍使用监督学习的方式来合理地设置参数取值&#xff0c;同时也将给出tensorflow程序来完成这个过程。设置神经网络参数的过程就是神经网络的训练过…

基于JDBC的MySQL数据库编程

✨博客主页: 荣 ✨系列专栏: MySQL ✨一句短话: 难在坚持,贵在坚持,成在坚持! 文章目录一. JDBC概述二. JDBC前置工作1. 准备好MySQL驱动包2. 创建项目三. JDBC的使用步骤1. 创建数据源DataSourece2. 连接数据库3. 构造并执行sql语句4. 释放资源5. sql语句不要写死(以插入为例)…

C++入门基础07:函数定义与声明、函数传参(传值、传地址、传引用)、函数重载

C入门基础07&#xff1a;函数定义与声明、函数传参&#xff08;传值、传地址、传引用&#xff09;、函数重载 1、函数定义与声明 函数是一起执行一个任务的一组语句。每个程序&#xff08;C/C&#xff09;都有一个主函数 main() &#xff0c; 所有简单的程序都可以定义其他额…

1563_AURIX_TC275_EVR的控制寄存器

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 1. 连续的写入必须确保是解锁状态&#xff0c;否则的话可能会导致所有的总线阻塞。 2. 多核系统中&#xff0c;尽量写入之后再读取一下确认写入的状态。 这里是过压以及欠压的几个监控结果…

if、for、while结构的用法

分支与循环的流程控制一、分支流程控制1. if分支语句结构1). 单分支2). 双分支3). 三元运算符&#xff08;双分支的简化&#xff09;4). 多分支二. 循环流程控制1. while循环语句语法结构1.while循环用法2.while 的死循环3. while else的用法2. for循环语句语法结构1. for和ran…

嵌入式开发学习之--串口通讯(上)

提示&#xff1a;本篇开始学习各种通讯方式&#xff0c;重中之重。 文章目录前言一、 串口通讯协议简介1.1 物理层1.2 协议层1.2.1 基本组成。1.2.2 波特率1.2.3 起始和终止位1.2.4 有效数据1.2.5 数据校验二、USART结构体详解总结前言 作为一个嵌入式的开发者&#xff0c;解析…

网页木马挂马的实现与防范

一、网页挂马是什么 不少用户都碰到过这样的现象&#xff1a;打开一个网站&#xff0c;结果页面还没显示&#xff0c;杀毒软件就开始报警&#xff0c;提示检测到木马病毒。有经验的朋友会知道这是网页恶意代码&#xff0c;这就是典型的网页挂马现象。那么是什么原因导致了这种…

数据库概论之MySQL表的增删改查 - 进阶版本1

MySQL表的增删改查 - 进阶1、数据库约束1.1 约束类型1.2 NULL约束1.3 UNIQUE约束1.4 DEFAULT约束1.5 PRIMARY约束1.6 FOREIGN KEY外键约束1.6.1 语法1.6.2 工作原理2、表的设计2.1 一对一2.2 一对多2.3 多对多大家好&#xff0c;已经好久没更新了 , 学校的学业有点忙 , 没有额外…

[论文解析] Denoising Diffusion Probabilistic Models

文章目录OverviewsWhat problem is addressed in the paper?What is the key to the solution?What is the main contribution?Contents扩散概率模型背景算法实验结论Overviews What problem is addressed in the paper? We present high quality image synthesis result…

【Java面试】说说类加载机制(流程)

文章目录加载流程装载(Load)链接(Link)验证(Verify)准备(Prepare)解析(Resolve)初始化(Initialize)卸载(Unload)加载流程 类的加载流程如下&#xff1a; 转载(Load)->链接(Link)->初始化(Initialize)->使用(Use)->卸载(Unload) 其中链接又包含验证(Verify)&#x…

rabbitMQ延时队列——TTL和DLX

一. 场景&#xff1a;“订单下单成功后&#xff0c;15分钟未支付自动取消” 1.传统处理超时订单 采取定时任务轮训数据库订单&#xff0c;并且批量处理。其弊端也是显而易见的&#xff1b;对服务器、数据库性会有很大的要求&#xff0c; 并且当处理大量订单起来会很力不从…

flask前后端项目--实例-前端部分:-4-vue-Element Plus

flask前后端项目--实例-前端部分&#xff1a;-4-vue-Element Plus组件添加事项 一、实验测试步骤 1.Element Plus添加 1.先备份App.VUE&#xff0c;然后修改app.vue的内容&#xff0c;数据来源资Element Plus的表格table 2. 数据来源资Element Plus的表格table 3. 运行服务&…

023_SSS_Neural 3D Video Synthesis from Multi-view Video(CVPR2022)

Neural 3D Video Synthesis from Multi-view Video(CVPR2022) 本文提出了一种新的3D视频生成方法&#xff0c;这种方法能够以紧凑但富有表现力的表示形式表示动态真实世界场景的多视图视频记录&#xff0c;从而实现高质量的视图合成和运动插值。 1. Introduction 本文的主要…