一.
HTTP提交是一个风险极大的事,所以用HTTPS加密运输可以保护用户信息的安全。
在configre的HttpSecurity对象提供了一个方法,requiresChannel()方法,借助这个方法,可以为各种url提供要求的通道。
如果想用https的通道
.requiresChannel
.antMatchers("/").requiresSecure()
如果还是想用http传送
.requiresChannel
.antMatchers("/").requiresInecure()
二.
跨站请求伪造也是CSRF攻击。为了防止攻击,security通过一个同步的token的方式实现防护
它会拦截状态变化的请求,并检查CSRF token。如果请求中不包含CSRF token的话,或者token和服务器的不匹配
那么请求就失败,抛出CsrfExceotion异常
解决方法:要在页面中添加一个隐藏域
如果在Thymeleaf中 用
<form method="POST" th:action="@{spite}">
在action中应用Thymeleaf的命名空间就会自动生成一个隐藏域
如果在JSP中的话
<input type="hidden"
name="${_csrf.parameterName}"
value="${_csrf.token}" />