Fork me on GitHub

网络安全

CAS教程 - Restful API方式实现SSO

如果每个Web应用有自己的登录界面,不想使用Cas服务器的登录界面。也不需要改动Cas服务器去适配各种客户端登录界面需求。 那么可以通过使用Restful API的方式进行SSO认证,这是最佳实践。 系统架构统一使用 SpringBoot+Meven,app1 和 app2 内容一致。 文件名 域名 功能 cas-app1 http://app1.com:8181/fire 客户端1[cas-client在此] cas-app2 http://app2...

CAS教程 - Ticket存储和验证

默认情况下,cas是将票据信息存储到内存中,我们可以将票据存储到redis服务器中,cas采用的spring data redis 来控制redis 将票据存储到redis需要两个步骤: 配置cas关于redis的依赖 配置application.properties,添加redis的配置信息 接下来讲解如何通过Redis存储Ticket,以及通过Restful API方式验证Ticket。 maven配置<!--redis支持,将票据存在redis,默认是内...

CAS教程 - Service配置

cas客户端接入称之为service,必须经过cas的允许才能进行登录,当然不同的客户端可以做不同的事情,其中包括: 自定义主题(各客户端登录页自定义) 自定义属性(服务属性(固定)与用户属性(动态)) 自定义协议 自定义登录后跳转方式,跳转路径 授权策略(拒绝属性、可登录时间范围限制、等等) 拒绝授权模式 持久化策略: InMemory XML(通过spring bean进行内存存储) JSON(通过json文件存储) YAML(通过yml文件存储) Mongo...

CAS教程 - 实现单点登录

通过前面几篇的介绍,熟悉了CAS Server的运行和调试,这一篇演示一个实际的单点登录例子。 项目架构统一使用 SpringBoot+Meven 构建 项目 地址 说明 cas-overlay https://cas.server.com:8443/cas cas-server 服务端 cas-app1 http://app1.com:8181 cas-client 客户端1 cas-app2 http://app2.com:8282 cas-c...

CAS教程 - 定制开发

现在开始对CasServer进行二次开发,比如如何设置数据库连接,如何使用数据库的用户名和密码登录, 如何使用Restful API方式实现SSO,如何自定义服务,如何自定义登陆界面等等。接下来将逐步介绍。 Cas官方说明,如果你想对它默认项目有所更改,那么就使用覆盖它路径的方式进行。 更改CAS的配置既可以修改cas.properties文件,也能修改默认的application.properties。 为了配置集中处理,我会把默认的application.prope...

CAS教程 - 服务安装

这篇开始写一个系列,讲解如何使用配置和使用CAS实现单点登录。 我的环境: CAS-server:5.3.X Maven:3.6.0 JDK:1.8 cas-server域名:cas.server.com tomcat服务器:SpringBoot内置/tomcat8 操作系统:华为云主机上CentOS 7 Cas支持Gradle和Maven两种编译方式,使用SpringBoot构建,我这里使用Maven的方式。 Maven镜像配置华为和Sonatype 联合发布中国...

CAS教程 - 原理篇

所谓单点登录(SSO),就是同平台的诸多应用登陆一次,下一次就免登陆的功能。就像你在知乎首页登录一次, 下一次再访问知乎专栏或是知乎日报就可以免去登录操作。 实现SSO的方式有很多,现在主流的就是CAS这种基于session的单点登录形式。 CAS是一个单点登录框架,开始是由耶鲁大学的一个组织开发,后来归到apereo去管。 CAS也是开源,遵循着apache 2.0协议,代码目前是在github上管理。 接下来我会写一个CAS的系列教程,这篇是一个原理篇,后面系列教...

小白讲安全 - HTTPS协议详解

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 HTTPS的优点: 内容加密建立一个信息安全通道,来保证数据传输的安全; 身份认证确认网站的真实性 数据完整性防止内容被第三方冒充或者篡改 当然凡事都有两面性,HTTPS的缺点也很明显,就是处理速...

小白讲安全 - JWT介绍和安全防范

Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的, 特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息, 以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。<!–more> JWT官网:https://jw...

小白讲安全 - 聊聊Web会话管理

Web刚刚兴起的时候,服务器只提供一些简单的HTML页面和链接,用户打开网址去浏览。 并不需要记住每次请求是谁发送来的,每次请求对服务器来讲都是全新的。 既然是浏览,作为一个服务器,为什么要记住谁在一段时间里都浏览了什么文档呢? 但是好日子没持续多久,很快大家就不满足于静态的HTML文档了,交互式的Web应用开始兴起,尤其是论坛,在线购物等网站。 必须管理会话,必须记住哪些人登录系统,哪些人往自己的购物车中放了商品,也就是说我必须把每个人区分开。 由于HTTP协议的无状...

小白讲安全 - 简单介绍OAuth2.0的授权流程

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表), 而无需将用户名和密码提供给第三方应用。 OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。 每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。 这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定...

小白讲安全 - SQL注入攻击介绍

SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。 可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作, 甚至有可能获取数据库乃至系统用户最高权限。 而造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码, 程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变, 额外的执行了攻击者精心构造的恶意代码。 SQL...

小白讲安全 - XSS攻击介绍

XSS攻击:跨站脚本攻击(Cross-Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆, 故将跨站脚本攻击缩写为XSS。XSS是一种常见的web安全漏洞,它允许攻击者将恶意代码植入到提供给其它用户使用的页面中。 这个是动态站点的威胁,静态站点完全不受其影响。 XSS分类存储型XSS: 主要出现在让用户输入数据,供其他浏览此页的用户进行查看的地方,包括留言、评论、博客日志和各类表单等。 应用程序从数据库...

小白讲安全 - CSRF攻击介绍

CSRF是Cross Site Request Forgery的缩写,翻译过来就是跨站请求伪造。 也被称为 one click attack/session riding,缩写为:CSRF/XSRF。 你这可以这么理解CSRF攻击:从一个网站A中发起一个到网站B的请求,而这个请求是经过了伪装的, 伪装操作达到的目的就是让请求看起来像是从网站B中发起的, 也就是说,让B网站所在的服务器端误以为该请求是从自己网站发起的,而不是从A网站发起的。当然,请求一般都是恶意的。 要真...