`
hpgary
  • 浏览: 82139 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring security 安全设置

    博客分类:
  • Java
阅读更多

1、CSRF攻击

CSRF 又称跨域请求伪造,攻击方通过伪造用户请求访问受信任站点。

 
  

举个例子

用户通过表单发送请求到银行网站,银行网站获取请求参 数后对用户账户做出更改。在用户没有退出银行网站情况 下,访问了攻击网站,攻击网站中有一段跨域访问的代码, 可能自动触发也可能点击提交按钮,访问的url正是银行网 站接受表单的url。因为都来自于用户的浏览器端,银行将 请求看作是用户发起的,所以对请求进行了处理,造成的 结果就是用户的银行账户被攻击网站修改。 

常见解决方法 

基本上都是增加攻击网站无法获取到的一些表单信息,比如 增加图片验证码,可以杜绝csrf攻击,但是除了登陆注册之外, 其他的地方都不适合放验证码,因为降低了网站易用性.。

spring security 的应对之策

a、在web应用中增加前置过滤器【CsrfFilter】对需要验证请求验证是否包含csrf的token信息,如果不包含,则包相应的错误。这样攻击网站无法获取到token信息,则跨域提交的信息都无法通过过滤器的校验。

b、CsrfFilter 默认只校验POST 请求,其它类型放过如果想要在表单中有csrf必须经过一次过滤器(非post)



 

c、request中设置csrf相关属性,如果没有,就生成一个


d、获取csrftoken两种方式

HttpSessionCsrfTokenRepository  将token信息保存的session中,通过模版或者表达式获取,默认采用这种方式



 CookieCsrfTokenRepository.withHttpOnlyFalse()  采用cooke方式存储,设置httponly 为false 这样可以通过jquery获取设置参数。

 

2、X-Content-Type-Options:nosniff 未指定文件类型,禁止浏览器猜测文件类型

spring security  应对之策

 

http.headers().addHeaderWriter(new XContentTypeOptionsHeaderWriter()) 
 3、X-Frame-Options 是否允许网页被iFrame

 

public XFrameOptionsHeaderWriter(XFrameOptionsMode frameOptionsMode) {
		Assert.notNull(frameOptionsMode, "frameOptionsMode cannot be null");
                /*如果设置为允许,spring抛出异常,要使用FrameOptionsHeaderWriter*/
		if (XFrameOptionsMode.ALLOW_FROM.equals(frameOptionsMode)) {
			throw new IllegalArgumentException(
					"ALLOW_FROM requires an AllowFromStrategy. Please use FrameOptionsHeaderWriter(AllowFromStrategy allowFromStrategy) instead");
		}
		this.frameOptionsMode = frameOptionsMode;
		this.allowFromStrategy = null;
	}
 DENY 不允许网页被iframe
SAMEORIGIN 允许网页被同一域名iframe
ALLOW-FROM 允许任意网页iframe该网页
spring 正确设置方式:
http.headers().addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsMode.SAMEORIGIN)); 

http.headers().addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsMode.DENY)); 
 
 4、最重要的是网站使用https协议,不要使用http协议
 
  • 大小: 144.5 KB
  • 大小: 25.2 KB
  • 大小: 75.5 KB
  • 大小: 25.9 KB
分享到:
评论

相关推荐

    Spring Security 资料合集

    - **XML配置**:Spring Security 原本支持XML配置,开发者可以在`security:http`标签下配置安全行为,如设置访问限制、登录页面等。 - **Java配置**:随着Spring Boot的发展,Spring Security也提供了Java配置方式...

    SpringSecurity安全框架基础Demo

    这个"SpringSecurity安全框架基础Demo"旨在帮助开发者快速理解和实践Spring Security的核心功能。 **1. 用户认证** 在Spring Security中,用户认证主要由Authentication对象负责。当用户尝试访问受保护的资源时,...

    spring security安全框架

    Spring Security 是一个强大的且高度可定制的 Java 安全框架,用于解决 Web 应用程序的安全问题。这个框架提供了一套全面的解决方案,包括身份验证、授权、会话管理以及跨站请求伪造(CSRF)防护等核心功能。在本文...

    Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权

    而Spring Security 则是 Java 开发中广泛使用的安全框架,用于实现认证和授权。当我们将这两者结合时,我们可以创建一个强大的统一登录认证鉴权系统。 首先,让我们深入了解Spring Cloud Gateway。这是一个基于...

    Spring Security 安全管理

    ing 社区并改名为 Spring Security,是一款强大的安全框架,为 Java 应用程序提供了全面的安全解决方案。它涵盖了用户认证、授权、会话管理、CSRF 防护等多个方面,广泛应用于 Web 应用、微服务以及 RESTful API 的...

    spring security 完整项目实例

    Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个完整的项目实例中,我们将深入探讨Spring Security的核心概念以及如何将其应用于实际的Web应用程序开发。 首先,我们从用户、...

    SpringSecurity笔记,编程不良人笔记

    SpringSecurity是Java领域中一款强大的安全框架,主要用于Web应用程序的安全管理。它提供了全面的身份验证、授权、会话管理以及安全相关的功能,可以帮助开发者构建安全的Web应用。在本笔记中,我们将深入探讨Spring...

    SpringSecurity学习总结源代码

    SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、授权和访问控制功能。在本文中,我们将深入探讨SpringSecurity的核心概念、关键组件以及如何配置和使用这个框架。 首先,Spring...

    spring security 4.0.0所需jar包

    - `spring-security-config-4.0.0.CI-SNAPSHOT.jar`:提供XML和注解配置,简化安全设置。 - `spring-security-config-4.0.0.CI-SNAPSHOT-sources.jar`:配置模块的源代码。 4. **spring-security-acl**: - `...

    SpringBoot+SpringSecurity处理Ajax登录请求问题(推荐)

    SpringSecurity是一个基于Spring的安全框架,能够提供身份验证、授权和加密等功能。在本文中,我们将使用SpringBoot+SpringSecurity来处理Ajax登录请求问题。 知识点2:Ajax登录请求问题 在前后端分离的开发模式...

    Spring Security 安全权限管理手册 PDF

    《Spring Security 安全权限管理手册》是一本深入解析Spring Security框架的专业指南,对于正在学习或已经在使用Spring框架的开发者来说,它提供了丰富的知识和实践经验。Spring Security是Spring生态系统中的一个...

    Spring Security安全权限管理手册 html

    在"Spring Security安全权限管理手册-family168"中,读者将能够学习如何设置和配置Spring Security,以及如何解决常见的安全问题。手册可能还会包含详细的示例代码、最佳实践和常见问题解答,帮助开发者更好地理解和...

    spring-security 官方文档 中文版

    Spring Security 是一款基于 Spring 框架的安全插件,提供了完整的安全性解决方案,包括身份认证(Authentication)、授权(Authorization)以及会话管理(Session Management)等功能。Spring Security 的设计目标是为...

    Spring Security 安全权限管理手册.pdf

    - 描述如何将配置的过滤器和命名空间应用到实际项目中,构建一个完整的Spring Security安全体系。 - **1.4 运行示例** - 提供一个具体的示例,演示如何运行配置好的Spring Security项目。 **2. 使用数据库管理...

    SpringBoot+SpringSecurity+WebSocket

    3. 集成SpringSecurity:配置SpringSecurity的WebSecurityConfigurerAdapter,设置登录认证、权限控制等规则。确保WebSocket连接也需要经过SpringSecurity的认证。 4. 客户端支持:在前端JavaScript中使用WebSocket ...

    狂神Spring Security静态资源

    在Spring Boot中,Spring Security会自动配置许多默认设置。例如,它会为所有HTTP请求创建一个默认的过滤器链,其中包括BasicAuthenticationFilter、CsrfFilter等,这些过滤器负责拦截和处理请求。对于静态资源,...

    Spring security认证授权

    - **配置**:在Spring Security中,通常通过`WebSecurityConfigurerAdapter`的子类来配置安全设置。你需要重写`configure(AuthenticationManagerBuilder auth)`方法来定义用户存储源,如JDBC、内存、LDAP等。 - **...

    Spring Security 安全权限管理手册(最新)

    《Spring Security安全权限管理手册》是一份针对Spring Security框架的详尽指南,旨在为初学者提供全面而深入的理解。Spring Security作为Spring框架的一个重要组成部分,它提供了强大的安全性和访问控制功能,是...

    SpringSecurity素材.rar

    SpringSecurity是Java领域中一款强大的安全框架,专为Spring和Spring Boot应用设计,提供全面的安全管理解决方案。在SpringBoot Web开发中,SpringSecurity扮演着核心角色,负责处理身份验证、授权以及访问控制等...

    Spring Security 3.pdf

    2. **Annotation配置**: 虽然XML是主要配置方式,但Spring Security 3也支持注解配置,允许更简洁的声明式安全设置。`@EnableGlobalMethodSecurity`和`@Secured`注解用于方法级别的安全控制。 三、主要组件 1. **...

Global site tag (gtag.js) - Google Analytics