`

鉴权和认证服务器

阅读更多

 

目前登录凭证的方式无非两种: 
一个是通过服务器端的session,一个是通过浏览器的cookie. 
简而言之:session和cookie

常规的是通过session 
步骤: 
1,用户在浏览器登录 
2,后台鉴权,若登录成功,则把用户信息写入session,servlet自动生成JSESSIONID 返回浏览器; 
3,浏览器把JSESSIONID 写入cookie 
说明:cookie是浏览器的存储文件,存储的只是JSESSIONID,而不是用户信息; 
JSESSIONID 只是一个钩子,用户信息其实存储在服务器端.

比如我在浏览器登录之后,重新打开一个标签页,输入相同的地址,仍然是登录状态,因为标签页共享cookie. 
也就是说我只要获取到JSESSIONID ,就可以获取用户隐私信息,比如除用户名以外的其他信息(密码,姓名,年龄等).也可以做一些敏感操作,比如修改密码

浏览器发送请求时会带上cookie 
这样服务器端才知道是否登录过: 

例如,我获取到JSESSIONID 之后,使用HTTP模拟发送请求: 

服务器端是如何判断是否登录

/***
     * 判断是否已登录
     *
     * @param user2
     * @return
     */
    public static boolean isLogined(GenericUser user2, String loginFlag) {
        if (ValueWidget.isNullOrEmpty(user2) || ValueWidget.isNullOrEmpty(user2.getUsername())
                || (!Constant2.FLAG_LOGIN_SUCCESS.equalsIgnoreCase(loginFlag))) {
            return false;
        } else {
            return true;
        }
    }

    /***
     * 判断是否已登录
     *
     * @param session
     * @return
     */
    public static boolean isLogined(HttpSession session) {
        String loginFlag = (String) session
                .getAttribute(Constant2.SESSION_KEY_LOGINED_FLAG);
        GenericUser user2 = (GenericUser) session.getAttribute(Constant2.SESSION_KEY_LOGINED_USER);
        return isLogined(user2, loginFlag);
    }

 

如果通过cookie呢?

详细流程,逻辑 

 
(1)登录前,浏览器先向认证服务器请求一个OTP,认证服务器返回OTP,同时返回一个cookie给浏览器; 

(2)认证服务器把OTP 和CCC(cookie) 挂钩
(3)登录时连同带上OTP 
(4)若登录成功,则认证服务器返回登录凭证(access token)给应用服务器; 
(5)认证服务器把CCC 和登录凭证挂钩
(6)通过CCC 可以判断用户是否有权限.

所以, 
(a)可以通过CCC 获取登录凭证 
(b)也可以通过OTP 获取登录凭证

根本原因:服务器把OTP 和CCC(cookie) 挂钩

那么CCC记在什么地方? 
浏览器

 

 

 

 

参考:http://blog.csdn.net/hw1287789687/article/details/48373209

 segmentfault 登录时,竟然使用明文密码:

 

 

  • 大小: 115 KB
  • 大小: 16.1 KB
  • 大小: 62.4 KB
  • 大小: 85.3 KB
0
2
分享到:
评论

相关推荐

    http鉴权认证

    HTTP鉴权认证是网络安全的重要组成部分,它用于保护网络资源免受未经授权的访问。在HTTP协议中,鉴权认证过程允许服务器验证客户端(通常是浏览器...正确配置和利用鉴权认证,可以有效地保护网络资源,防止未授权访问。

    论文研究-基于GBA的认证鉴权流程的设计与实现 .pdf

    4. 三方鉴权:不同于传统的双方认证鉴权,三方鉴权引入了一个第三方网元(BSF),以便更安全和有效地在UE和应用服务器之间建立信任关系。 七、应用前景与基金项目支持 本文所提出的基于GBA的三方鉴权方式不仅能够...

    Onvif编译及开发(带wsse鉴权和digest鉴权)

    本教程将深入探讨如何进行ONVIF编译与开发,包括使用gSOAP工具处理SOAP消息,以及实现WSSE(Web Services Security Extensions,Web服务安全扩展)和DIGEST鉴权机制。 首先,让我们了解gSOAP。gSOAP是一个开源C和...

    统一认证+多租户体系+鉴权

    例如,authorization-server-集成mybatis模式.zip可能是一个包含基于MyBatis的权限管理模块,用于集成到认证服务器中,实现细粒度的鉴权功能。 综上所述,这三个技术结合在一起,构建了一个完整的安全框架,使得...

    文件服务器虚拟路径访问文件鉴权代码

    在IT行业中,文件服务器是用于存储、管理和分发文件的核心组件。当涉及到“文件服务器虚拟路径访问文件鉴权代码”时,我们关注的是如何在Java环境下实现一个安全的系统,该系统允许用户通过虚拟路径访问文件,同时...

    rpc 微服务架构下的安全认证与鉴权1

    在微服务架构中,安全认证和鉴权是至关重要的,因为它们确保了服务之间的通信以及用户访问的正确性和安全性。随着从单体应用向微服务的转变,传统的认证和鉴权机制面临着新的挑战。本文将探讨这些挑战以及相应的解决...

    ClearBox 认证鉴权软件

    【ClearBox 认证鉴权软件】是一款专为网络设备提供认证和授权服务的软件,主要支持CISCO的TACACS协议。在IT行业中,认证和鉴权是网络安全的重要环节,确保只有经过验证的用户才能访问网络资源。TACACS(Terminal ...

    Springboot整合Spring security+Oauth2+JWT搭建认证服务器,网关,微服务之间权限认证及授权

    通过设置`@EnableAuthorizationServer`和`@EnableResourceServer`注解,分别启动认证服务器和资源服务器的功能。同时,可以配置JWT令牌的生成和验证。 5. **API网关**:在微服务架构中,API网关作为前端和后端服务...

    第三方支付身份认证和银行卡鉴权接口文档

    ### 第三方支付身份认证和银行卡鉴权接口文档 #### 知识点概览 本文档主要涉及第三方支付系统中的身份认证及银行卡鉴权接口的设计与实现。这些接口用于确保交易安全,防止欺诈行为,并保障用户的资金安全。主要...

    实现OPC UA服务器功能,OPC UA服务器支持匿名访问、用户认证和客户证书认证

    1. 实现OPC UA服务器功能,OPC UA服务器支持匿名访问、用户认证和客户证书认证。 2. 实现opc ua用户管理功能;管理OPC UA客户端通过用户认证访问服务端所需的用户名和密码。 3. 实现OPC UA访问证书管理功能;管理OPC...

    Shiro + Java-JWT无状态鉴权认证机制

    本文将深入探讨如何在SpringBoot项目中结合Apache Shiro和Java JSON Web Tokens (JWT) 实现无状态的鉴权认证机制。我们将围绕SpringBoot、Mybatis、PageHelper、通用Mapper以及Redis(Jedis)缓存框架展开讨论,阐述...

    .NET6平台开发WebApi-使用JWT进行用户鉴权和测试源码

    添加`AddSwaggerGen`和`UseSwaggerUI`中间件,并配置Swagger UI以显示JWT认证选项。 5. **接口鉴权**:在Web API的控制器或特定操作上,我们可以使用`Authorize`特性来强制要求请求必须携带有效的JWT才能访问。`...

    FreeRadius客户端和服务器配置

    FreeRadius 客户端和服务器配置是实现网络认证和授权的关键步骤。本文将详细介绍 FreeRadius 客户端和服务器的配置过程。 FreeRadius 客户端配置 FreeRadius 客户端配置文件位于 `/usr/local/etc/radiusclient` ...

    关于Mongodb 认证鉴权你需要知道的一些事

    MongoDB 是一款流行的开源文档型数据库,其默认情况下在启动时不开启任何认证,这意味着任何人都可以访问和修改数据库,这无疑给数据库的安全性带来了风险。在遭受黑客攻击后,了解并实施MongoDB的认证鉴权机制变得...

    zuul网关登陆鉴权/动态路由

    在本文中,我们将深入探讨 Zuul 在企业级应用中的登录鉴权和动态路由功能。 **登录鉴权** 登录鉴权是任何应用程序安全性的基础。在 Zuul 中,我们可以通过自定义过滤器实现这一功能。Zuul 过滤器分为四种类型:pre...

    详解用JWT对SpringCloud进行认证和鉴权

    在使用JWT进行认证和鉴权时,客户端向服务器申请授权,服务器认证以后,生成一个token字符串并返回给客户端,此后客户端在请求受保护的资源时携带这个token,服务端进行验证再从这个token中解析出用户的身份信息。...

    过滤器实现鉴权

    在Java Web开发中,过滤器(Filter)是Servlet技术的一部分,用于处理HTTP请求和响应,实现数据的预处理和...在实际开发中,为了保证系统的安全性和可扩展性,通常会结合数据库和成熟的认证框架进行更复杂的权限控制。

    Oauth-jwt网关鉴权等项目系统认证的知识

    OAuth的核心概念包括客户端、资源所有者(用户)、授权服务器和资源服务器。在实际应用中,比如社交媒体平台,用户可以授权第三方应用访问他们的信息,而无需直接分享登录凭据。 JWT,则是一种轻量级的身份验证和...

    sureness认证鉴权框架 v1.0.8.zip

    在深入理解Sureness之前,我们需要先了解认证和鉴权的基本概念。 认证(Authentication)是确认用户身份的过程,通常通过用户名、密码、数字证书等方式进行。而鉴权(Authorization)则是判断已认证用户是否具有...

Global site tag (gtag.js) - Google Analytics