一文让你彻底搞懂cookie和session产生漏洞的原理

首先让我们来看看登录的一般流程:

  1. 输入账号密码提交给后端;
  2. 后端进行判断账号密码是否一致,这里的逻辑根据每个程序员的想法去写;
  3. 如果通过2登录成功,跳转登录成功的页面;
    如果通过2登录失败,跳转重新登录的页面;

后台管理系统有很多文件,判断登录之后,进入这些文件都需要加以验证是否登录,否则登录就只起了一次作用,所以才会产生cookie和session的概念。会有这么一个专门的文件进行验证,这里面应该会用到cookie或者session,然后将这个文件在需要的地方进行调用。

首先让我们介绍一下第一位嘉宾:Cookie

  1. 基于身份验证;
  2. 储存在客户端(浏览器)‘,存在安全隐患
    常见的安全危害:cookie修改/伪造/盗取

可以看到无论是cookie还是session都可以进行身份验证,只是储存的位置不一致。

下面用代码演示一下具体的过程(以PHP语言为背景进行讲解):
一个简单的登录页面:在这里插入图片描述
获取提交的值,使用php进行数据库交互的代码:
在这里插入图片描述
假设登录成功后跳转添加页面:
在这里插入图片描述
失败后跳转登录页面。
但是此时有一个问题,我在不登陆的情况下,访问添加页面仍然有效,就是说我的登录没有起作用,假设这个时候添加一段代码,登陆成功后在cookie里存储东西,其他地方从cookie里面获取东西,如果获取不到,说明没有登录,如果获取到了,说明登录成功:
登录代码处:
在这里插入图片描述
在添加页面前面插入一段验证是否登录的代码:
在这里插入图片描述

一个网站里通常都有很多cookie:
在这里插入图片描述
在这里插入图片描述
我们继续回到上一个例子,当登录成功之后,cookie中的user有了值admin,当再次登录的时候,会携带这个带有user=amdin的cookie进行登录,这个时候,验证是否能够通过的代码就能通过验证:
在这里插入图片描述

但是仔细想,这种验证有安全缺陷,只是验证cookie,如果抓包修改了cookie的值直接是admin,那这样就可以直接登录了,这就是cookie修改伪造。那盗取又是什么意思呢?如果我登录以后,客户端就是有我登录的cookie,储存在自己的浏览器里面,别人如果用xss漏洞,通过js获取到你的cookie的值,这样就会造成权限维持的效果了,这里就不展开讲了。

另外还有session
3. 基于身份验证
4. 存储在服务器端(服务器)
常见的安全危害:session劫持
还是采用刚才的例子:
这是判断登录的代码,这里把登录的信息存储到了session当中:
在这里插入图片描述
这是添加的页面,进行session验证:
在这里插入图片描述
这种再次请求的时候,cookie里面就不会再出现敏感值,但是存在sessionid的值,一个sessionid对应一个session,session可以理解为打电话,如果一方挂断了电话,就结束了本次通话,当第二次用另一个浏览器进行访问的时候(另外一次电话连接),sessionid就已经变了,不同的电话连接有不同的session,既然cookie可以进行cookie伪造,那session可以嘛?我们f12可以看到,sessionid的值很复杂,伪造起来会有很多的值,可能性太多,爆破很难,尽管爆破成功了,有可能对方的sessionid已经改了,一般不会产生伪造的问题。
那产生的session劫持是什么意思呢?当一直没有关闭浏览器的时候,此时获取的sessionid就是有效的,如果没有关闭浏览器,但是长时间未操作,也会导致sessionid失效,另一种情况就是关闭了浏览器,这两种情况都会导致session失效,所以攻击必须得到未失效的session,进行session劫持,以后再讲。

补充两个知识点:万能密码/验证码

  1. 万能密码其实就是sql注入的语句,$result是有结果的,那么session里面也会存储对应的值,那么就会登录成功。
  2. 验证码复用问题,验证码输入一次,重放修改账号密码,相当于就是爆破攻击了,跟没有验证码一样的。所以每次登录验证码都要变,这样才能放置爆破攻击。验证码不变,修改密码,显示密码错误,验证码可以爆破,如果显示验证码错误,就不可以爆破。一种特殊情况,简单的验证码可以使用插件直接识别,所以如何保证每次登录,验证码都会改变呢?大家思考一下吧?

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

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

相关文章

Tensorflow2.0笔记 - 范式norm,reduce_min/max/mean,argmax/min, equal,unique

练习norm,reduce_min/max,argmax/min, equal,unique等相关操作。 范数主要有三种: import tensorflow as tf import numpy as nptf.__version__#范数参考:https://blog.csdn.net/HiWangWenBing/article/details/119707541 tensor tf.convert_to_tensor(…

TensorRT英伟达官方示例解析(二)

系列文章目录 TensorRT英伟达官方示例解析(一) TensorRT英伟达官方示例解析(二) 文章目录 系列文章目录前言一、03-BuildEngineByTensorRTAPI1.1 建立 Logger(日志记录器)1.2 Builder 引擎构建器1.3 Netwo…

【GitHub项目推荐--Awesome-Go/Python/JavaScript/Java】【转载】

Awesome 译为令人惊叹的、极好的,GitHub 上有很多 Awesome 开头的开源项目。比如 Awesome-Go、Awesome-Python。 就像汇总常用的软件一样,GitHub上有大量的开源项目,开发者就会根据需要汇总一些常用的好用的资源,并且根据 Awesom…

OCP NVME SSD规范解读-7.TCG安全日志要求

在OCP NVMe SSD规格中,TCG的相关内容涉及以下几个方面: 活动事件记录: NVMe SSD需要支持记录TCG相关的持久事件日志,用于追踪固态硬盘上发生的与TCG安全功能相关的关键操作或状态变化,如启动过程中的安全初始化、密钥…

当键入网址后,到网页显示,其间发生了什么

解析 URL: 浏览器地址栏输入 URL,浏览器解析 URL,从而生成发送给 web 服务器的请求信息(例如 www.example.com)。 检查域名缓存: 浏览器查看浏览器缓存系统缓存路由缓存, 如有存在缓存&#x…

SQL注入实战:盲注

盲注: 1、当攻击者利用SQL注入漏洞进行攻击时,有时候web应用程序会显示,后端数据库执行SQL查询返回的错误信息,这些信息能帮助进行SQL注入,但更多时候,数据库没有输出数据web页面,这是攻击者会…

JRT集中打印

之前一直在夯实基础,现在是补demo的时段了。了解过检验集中打印的人知道,集中打印的逻辑有多复杂。既要考虑普通检验报告加上换页。又要考虑微生物报告加上换页,既有A5的报告,也有A4的报告,还要考虑A4打印两个组装A5时…

工程化代码管理高频面试题

1. git常用命令以及工作中都怎么工作 git init 初始化仓库 ​ git status 查看当前各个区域的代码状态。 ​ git log查看commit记录 ​ git reflog查看完整记录 ​ git add 添加工作区代码到暂存区 ​ Git commit 暂存区代码的提交 ​ git reset 代码的版本回退 ​ git stash …

《WebKit 技术内幕》学习之七(3): 渲染基础

3 渲染方式 3.1 绘图上下文(GraphicsContext) 上面介绍了WebKit的内部表示结构,RenderObject对象知道如何绘制自己,但是,问题是RenderObject对象用什么来绘制内容呢?在WebKit中,绘图操作被定…

finalshell连接linux的kali系统

kali的ssh服务似乎是默认关闭的,笔者在玩CentOS系统时可以直接用finalshell完成连接,但kali不行,需要先手动开启ssh服务。 开启kali的ssh服务 输入【ssh start】命令开启ssh服务,可以用【ssh status】命令查看ssh状态&#xff0c…

第40集《佛法修学概要》

请大家打开讲义第一百零六页。我们讲到大乘的果位。大乘佛法的修学跟小乘最大的差别,主要在于一句话,就是大乘佛法是一种“称性起修,全修在性”。大乘佛法的功德第一个“称性”,这个“称”就是随顺。我们一念明了的心,…

【数据结构】 链栈的基本操作 (C语言版)

目录 一、链栈 1、链栈的定义: 2、链栈的优缺点: 二、链栈的基本操作算法(C语言) 1、宏定义 2、创建结构体 3、链栈的初始化 4、链栈的进栈 5、链栈的出栈 6、获取栈顶元素 7、栈的遍历输出 8、链栈的判空 9、求链…

AtCoder Beginner Contest 337 A~G

A.Scoreboard(循环) 题意: 两个队伍进行 N N N场比赛。在第 i i i场比赛中 ( 1 ≤ i ≤ N ) (1≤i≤N) (1≤i≤N),两队各得到 X i X_i Xi​和 Y i Y_i Yi​分。比赛结束后总分更高…

BACnet网关BL121BN 实现稳定可靠、低成本、简单的楼宇自控协议BACnet转OPC UA解决方案

随着楼宇自控系统的迅猛发展,人们深刻认识到在楼宇暖通行业中,实时、可靠、安全的数据传输至关重要。在此背景下,高性能的楼宇暖通数据传输解决方案——协议转换网关应运而生,广泛应用于楼宇自控和暖通空调系统应用中。 钡铼技术…

[反转链表] [合并两个有序链表][分割链表]

这里写目录标题 反转链表合并两个有序链表分割链表 反转链表 1、题目: 2.思路  思路1:建立一个newHead,取一个节点进行头插。具体做法如下! 建立一个newHead(新头),由于一个节点里面存的是下一个节点的地址,如果取…

VS2019查看文件编码格式

文件->高级保存选项 在这里可以看见现在的编码格式也可以修改编码格式 如果没有高级保存选项的话可以参考这篇博客进行设置

Vue (v-bind指令、el与data的两种写法、理解MVVM、数据代理、V-no事件处理、双向数据绑定V-model、登陆页面实现

V-bind指令 el与data两种写法 MVVM 数据代理 V-no事件处理 V-no用于监听DOM对象 双向数据绑定V-model v-model 指令用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值。 按钮的…

激光雷达行业梳理1-概述、市场、技术路线

激光雷达作为现代精确测距和感知技术的关键组成部分,在近几年里取得了令人瞩目的发展。作为自动驾驶感知层面的重要一环,相较摄像头、毫米波雷达等其他传感器具有“ 精准、快速、高效作业”的巨大优势,已成为自动驾驶的主传感器之一&#xff…

网络安全的概述

网络空间的概念 2003年美国提出网络空间的概念:一个由信息基础设施组成的互相依赖的网络。 我国官方文件定义:网络空间为继海,陆,空,天以外的第五大人类活动领域 网络安全发展历史 通信保密阶段 --- 计算机安全阶段…

API接口安全总结

接口分类 HTTP接口 RPC接口(客户端和服务器端的连接 例如游戏登陆)非web协议,PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务。当两个物理分离的子系统需要建立逻辑上的关联时,R…