通过js判断,找到一简单好用代码以供参考:
function
CheckPassword(password)
{
var
strength =
new
Array();
strength[0] =
"Blank"
;
strength[1] =
"Very Weak"
;
strength[2] =
"Weak"
;
strength[3] =
"Medium"
;
strength[4] =
"Strong"
;
strength[5] =
"Very Strong"
;
var
score = 1;
if
(password.length
<
1)
return
0;
//return strength[0];
if
(password.length
<
4)
return
1;
//return strength[1];
if
(password.length >= 8)
score++;
if (password.length >= 10)
score++;
if
(password.match(/\d+/))
score++;
if
(password.match(/[a
-
z]/) &&
password.matc
h(/[A
-
Z]/))
score+
+;
if
(password.match(/.[!,@,#,$,%,^,&,*,?,_,~,
-
,£,(,)]/))
score++;
return strength[score];
}
二、失败登录处理
自定义FORM_LOGIN_FILTER,重载UsernamePasswordAuthenticationFilter的attemptAuthentication方法,判断用户登录失败信息,进行用户锁定等。
https通讯
配置 <intercept-url>标签的requires-channel属性,例如:
<http>
<intercept-url pattern="/secure/**" access="ROLE_USER" requires-channel="https/>
<intercept-url pattern="/**" access="ROLE_USER" requires-channel="any"/>
</http>
三、密码MD5密文保存
配置如下:
<!-- 密码编码 -->
<
b:bean
id
=
"passwordEncoder"
class
=
"org.springframework.security.authentication.encoding.Md5PasswordEncoder"
></
b:bean
>
<!-- 认证管理 -->
<
authentication-manager
alias
=
"am"
>
<
authentication-provider
>
<!-- <password-encoder hash="md5"/> -->
<
password-encoder
ref
=
"passwordEncoder"
>
<
salt-source
user-property
=
"username"
/>
</
password-encoder
>
<
jdbc-user-service
data-source-ref
=
"dataSource"
/>
</
authentication-provider
>
</
authentication-manager
>
四、会话超时
在web.xml配置:
<!-- 设置session 超时时间为20分钟 -->
<
session-config
>
<
session-timeout
>
20
</
session-timeout
>
</
session-config
>
五、并发会话控制
配置如下:
<
b:bean
id
=
"sas"
class
=
"org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy"
>
<
b:constructor-arg
name
=
"sessionRegistry"
ref
=
"sessionRegistry"
/>
<
b:property
name
=
"maximumSessions"
value
=
"1"
/>
<
b:property
name
=
"exceptionIfMaximumExceeded"
value
=
"true"
></
b:property
>
<
b:property
name
=
"alwaysCreateSession"
value
=
"true"
></
b:property
>
</
b:bean
>
最大会话数1,超出报错,总是创建新会话
六、跨站脚步攻击
编写过滤程序,对参数和header进行字符过滤。配置如下:
<!-- Avoiding XSS -->
<
filter
>
<
filter-name
>
XssFilter
</
filter-name
>
<
filter-class
>
sp.common.XssFilter
</
filter-class
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
XssFilter
</
filter-name
>
<
url-pattern
>
/*
</
url-pattern
>
</
filter-mapping
>
七、禁用WebDav等不安全Http方法
修改web.xml
<
web-resource-collection
>
<
url-pattern
>
/*
</
url-pattern
>
<
http-method
>
PUT
</
http-method
>
<
http-method
>
DELETE
</
http-method
>
<
http-method
>
HEAD
</
http-method
>
<
http-method
>
OPTIONS
</
http-method
>
<
http-method
>
TRACE
</
http-method
>
</
web-resource-collection
>
相关推荐
本项目“Springboot+SpringSecurity+SpringSession+Redis+Mybatis-Plus+Swwager”整合了Spring Boot、Spring Security、Spring Session、Redis、Mybatis-Plus以及Swagger等技术,旨在构建一个强大的、安全的、具有...
这个"Spring Security 项目配置源码"提供了学习和实践Spring Security的宝贵机会,可以帮助开发者深入理解Spring Security的内部工作原理,以及如何在实际项目中有效地应用它。通过逐步研究和运行项目,你可以掌握...
6. **security-jpa**:此文件名可能是某个模块或者配置文件,可能包含了与SpringSecurity和JPA整合的具体实现,比如用户Repository、安全配置类等。在项目中,它可能负责定义如何使用JPA来操作用户角色和权限数据,...
在本项目中,我们主要探讨的是如何将Java与Spring Boot框架相结合,利用JWT(JSON Web Token)和Spring Security来构建一个安全的Web应用程序。这个实战项目涵盖了从基础概念到实际应用的完整流程,旨在帮助开发者...
在Web应用中,安全是至关重要的,Spring Security和CAS(Central Authentication Service)是两种广泛使用的安全框架。本实例旨在展示如何将Spring Security与CAS结合,实现一个高效的单点登录(Single Sign-On,SSO...
- 描述如何将配置的过滤器和命名空间应用到实际项目中,构建一个完整的Spring Security安全体系。 - **1.4 运行示例** - 提供一个具体的示例,演示如何运行配置好的Spring Security项目。 **2. 使用数据库管理...
SpringSecurity是Spring生态系统的安全模块,用于处理身份验证和授权。它提供了一套强大且高度可定制的机制,以保护Java应用免受各种攻击,例如:SQL注入、XSS、CSRF等。SpringSecurity的核心组件包括:过滤器链、...
Spring Security是一个强大的安全框架,提供认证、授权和安全配置等功能,用于保护Web应用程序。它为Spring Boot提供了丰富的安全特性,包括用户认证、角色授权、访问控制、会话管理等。Spring Security可以很容易地...
struts2 + spring3 + hibernate3 + spring security3 + mysql + tomcat sys_users;sys_roles;sys_authorities;sys_resources;sys_users_roles;sys_roles_authorities;sys_authorities_resources; PS:此项目运行不...
我们将基于给定的标签——SpringBoot、SpringSecurity、mysql、session共享和idea来构建一个完整的示例。 首先,SpringBoot是一个轻量级的Java框架,它简化了创建独立的、生产级别的基于Spring的应用程序。通过内置...
Spring Security 是一个功能强大的安全框架,它为基于 Java 的应用程序提供了身份验证(authentication)、授权(authorization)、CSRF 保护、登录和注销功能等功能。它能帮助开发者快速地为应用增加安全特性。 ##...
7. **安全实践**:理解SSO的安全隐患,如会话固定攻击(Session Fixation)、CSRF(跨站请求伪造)等,以及如何通过Spring Security和CAS的配置来防范这些攻击。 8. **性能优化**:考虑在高并发场景下的性能问题,...
### Spring Security3 相关知识点概述 #### 第一章:一个不安全应用的剖析 **安全审计** - **目的**:识别系统中的安全隐患...无论是基础的安全配置还是高级的扩展功能,Spring Security都能满足各种复杂的安全需求。
在本项目中,开发者利用了SpringBoot、SpringSecurity和Vue.js三大技术栈构建了一个后台管理系统。下面将分别介绍这三个核心组件及其在项目中的作用和重要性。 **SpringBoot** SpringBoot是Spring框架的一个扩展,...
SpringBoot和SpringSecurity是Java开发领域中两个非常重要的框架,它们在构建现代Web应用程序时起着关键作用。SpringBoot简化了Spring应用的初始搭建以及开发过程,而SpringSecurity则为我们的应用提供了强大的安全...
**Spring Security** 是Spring框架的一个子项目,专注于提供身份验证和授权功能。它可以保护你的应用程序免受恶意访问,支持各种认证和授权机制,包括HTTP基本认证、OAuth2、JWT等。 **MyBatis** 是一个优秀的持久...
12.1设置MockMvc和Spring Security 104 12.2 SecurityMockMvcRequestPostProcessors 105 12.2.1使用CSRF保护进行测试 105 12.2.2在Spring MVC测试中以用户身份运行测试 106 12.2.3使用RequestPostProcessor在Spring ...
### Spring Boot 1.5.2、Spring Security 4 与 Spring Data JPA 整合实践 #### 一、项目背景及目标 本项目旨在通过一个具体的案例来演示如何将 Spring Boot 1.5.2、Spring Security 4 以及 Spring Data JPA 进行...
Java语言开发的统一角色访问控制系统(Unified Role Access Control System),基于Spring Security 3实现的权限控制系统 程序框架版本说明:Spring MVC 3.0.6 + Spring Security 3.1.3 + Hibernate 3.6.10 运行...