0 0

js跨域单点登录不安全,怎么解决0

我现在是这样做的
统一认证中心部署在:10.4.18.2服务器上面
登录页面地址为
http://10.4.18.2/ssoLogin/login.jsp


现在有2个系统
文档展示系统
企业内部网盘系统

这两个系统,都需要登录,
登录的时候,都重定向到 http://10.4.18.2:8083/ssoLogin/login.jsp 页面登录

这两个系统,在首页都有如下代码

function tryLogin()
{
$.getScript("http://10.4.18.2:8083/ssoLogin/Api/Auth?method=getLogin", function() {
  var res = loginData[0];
  if(res != '')
  {
  if(typeof(res) != "undefined")
  {
  if(res['is_login'] == 'true')
  {
  window.location.href = '${ pageContext.request.contextPath}/auto/autoLogin?username='+res['login_username'];
  }
  }
  }
});
}

var user = '${ sessionScope.loginuser.username}';

if(user == '')
{
tryLogin();
}


代码的大致意思是:

如果判断没有登录,则用js跨域到统一认证中心去判:用户是否登录,如果登录,认证中心则传回登录的用户名
然后执行
window.location.href = '${ pageContext.request.contextPath}/auto/autoLogin?user='+res['login_username'];
子系统自动登录,登录的用户名是 认证中心则传回登录的用户名

现在的问题是,子系统自动登录 这一步不安全,如果有人知道这个入口,直接在浏览器上面敲这个地址,那岂不是跳过了自动登录

请问,这一步如何优化

有什么其他的方法处理

2014年3月04日 17:24

2个答案 按时间排序 按投票排序

0 0

这是典型的被攻击的代码的范例。
1、使用传回用户名的方式,就是一个伪登录,如你所说,我直接不登陆,然后拼接一个URL,就可以完成了认证过程;
2、从安全的角度来说,步骤保证如下:
(1)若无用户的SESSION,跳至登陆服务器;
(2)在认证服务器上完成认证;
(3)返回一个经过加密的串(动态生成,不能每次一样);
(4)解析加密串,提取用户名;
(5)对于应用服务器和认证服务器中,要做签名;
(6)加入检验机制,基于时间是必要的;
总的来说,可以参照于银行的支付操作的认证交互过程。

2014年3月11日 18:47
0 0

加个时间戳,在一定时间内进程处理

2014年3月04日 20:03

相关推荐

    vue+springboot前后端分离实现单点登录跨域问题解决方法

    那就意味着做单点登录咯,至于不知道什么是单点登录的同学,建议去找一下万能的度娘。 刚接到这个需求的时候,老夫心里便不屑的认为:区区登录何足挂齿,但是,开发的过程狠狠的打了我一巴掌(火辣辣的一巴掌)。。...

    一种轻量级的跨域单点登录解决方案.pdf

    一种轻量级的跨域单点登录解决方案 本文提出了一种轻量级的跨域单点登录解决方案,旨在解决现有单点登录系统设计复杂、实施困难等问题。该方案利用JavaScript和XML技术手段实现,通过在登录中心生成带有登录信息的...

    跨域点单登录源码SSO_cross_domain

    跨域点单登录源码SSO_cross_domain是一个用于实现单点登录(Single Sign-On, SSO)的项目,主要解决了用户在多个域名之间切换时无需重复登录的问题。在这个项目中,我们将探讨三个核心概念:跨域、点单登录以及SSO。...

    跨域 SSO单点登录 DEMO

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在多个相互关联的应用系统中只需要登录一次,即可访问所有系统,而无需再次输入凭证。这种技术在现代企业环境中非常常见,因为它提供了便捷的用户体验并...

    day10单点登录Redis跨域jsonp共16页.pdf

    【标题】"day10单点登录Redis跨域jsonp共16页.pdf" 提供了几个关键主题,分别是单点登录(Single Sign-On, SSO)、Redis、跨域(Cross-Origin Resource Sharing, CORS)以及JSONP(JSON with Padding)。这些是IT...

    完美解决iframe跨域问题

    3. **iframe跨域问题**:当iframe加载的页面与包含它的页面不在同一个域时,就会出现跨域问题,导致无法直接通过JavaScript进行通信,如获取iframe内的内容、设置iframe的属性等。 **二、iframe跨域的解决方案** 1...

    JEECG 单点登录说明文档

    JEECG BPM 单点登录说明文档(kisso集成),已经在项目中使用。

    JS跨域访问解决方案总结[参照].pdf

    JS 跨域访问解决方案总结为我们提供了一种更安全、方便的跨域请求方式来融合(Mashup)自己的 Web 应用。这种方式可以将请求分摊到不同的服务器,减轻单个服务器压力以提高响应速度;另外一种好处是可以将不同的业务...

    vue+springboot前后端分离实现单点登录跨域问题处理.doc

    在我们开始实现单点登录之前,我们需要解决的一个问题是跨域问题。因为我们的前端使用的是 Vue.js,而后端使用的是 Spring Boot,这两个技术栈之间的通信需要跨域请求。我们首先需要在 Spring Boot 项目中配置 CORS ...

    单点登录系统

    单点登录系统(Single Sign-On, SSO)是一种身份验证机制,允许用户通过一次登录操作访问多个相互关联的应用系统,无需在每个系统中分别输入凭证。这种技术在现代企业架构中广泛采用,以提高用户体验,简化管理,并...

    Iframe+Cookie实现简单的单点登录

    【标题】:“Iframe+Cookie实现简单的单点登录” 单点登录(Single Sign-On,SSO)是一种身份验证机制,允许用户在多个相互关联的应用系统中登录一次,然后在整个会话期间无需再次输入凭证即可访问这些系统。在本文...

    跨域实现用户鉴权

    4. **单点登录(Single Sign-On, SSO)**:通过中央认证服务器,用户只需一次登录,就可以在多个系统间自由切换,适用于多应用系统。 5. **后端代理(Backend-as-a-Proxy)**:前端发送请求到后端服务器,后端...

    cross-domain-sso:跨域单点登录案例研究

    总结起来,跨域单点登录是一种提高用户体验的技术,它利用JavaScript和其他Web技术来实现在不同域名之间的无缝登录。理解和掌握CDSO的实现原理和安全措施对于开发高效、安全的Web应用至关重要。在实际项目中,开发者...

    java单点登录流程及其他

    在 Java 中实现单点登录需要使用到 Jwt(JSON Web Tokens),Jwt 是一种基于 Token 的身份验证机制,可以与 SSO 一起使用,但并不是 SSO 的必要组成部分。 首先,我们需要配置 SecurityConfig 类,该类是 Spring ...

    SSO单点登录【基于cookie二级域名下跨域共享】

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。在基于Cookie的二级域名下跨域共享SSO实现中,核心概念是利用Cookie的特性来实现用户...

    跨域共享session (实现http跳转https 共享session)

    但是,为了提供更好的用户体验,特别是在单点登录(Single Sign-On, SSO)场景下,跨域共享session变得非常重要。 **一、跨域共享session原理** 1. **JSONP(JSON with Padding)**:JSONP是一种早期的跨域解决方案...

    SSO单点登陆实现 cookie + jsonP 实现夸域单点登陆

    SSO(Single Sign-On)单点登录是一种网络应用的认证机制,它允许用户在一个系统中登录后,无需再次输入凭证即可访问其他系统。在本文中,我们将深入探讨如何使用cookie和JSONP(JSON with Padding)技术来实现跨域...

    基于对称加密的简单单点登录系统sso

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统或应用中登录后,无需再次认证即可访问其他关联系统或应用。在这个基于对称加密的简单SSO系统中,我们将探讨如何使用Servlet和对称...

    asp.net SSO单点登录例子

    ASP.NET SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在这个例子中,我们有三个不同的域:主域a.com以及两个子域app1.a.com和app2.a....

    sso-use-cookie单点登录

    单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。在这个项目中,我们利用SpringBoot框架来实现基于Cookie的SSO。下面将详细解释这个项目的...

Global site tag (gtag.js) - Google Analytics