java 框架中防止 csrf 攻击方法包括:应用 csrf 令牌:形成并存放随机字符串以验证要求的合法性。同源策略:限定来自不同域的要求,避免跨域 csrf 进攻。referer 头查验:认证referer 头是否与应用软件 url 配对,以排除跨域 csrf 进攻。httponly cookie:严禁浏览器根据 javascript 浏览 cookie,减少对话 cookie被盗取风险。
zvvq
Java 框架中的 CSRF 进攻防止
介绍 copyright zvvq
跨网站要求仿冒 (CSRF) 进攻是一种黑客攻击,攻击者运用受害人的合法对话令牌向远程 Web 应用软件推送故意要求。在 Java 框架中,有几种方法能够防止 CSRF 进攻。
预防方法 copyright zvvq
1.应用 CSRF 令牌 zvvq.cn
CSRF令牌是一个随机字符串,在账号登录时形成并存储在客户的对话中。在每个表单提交要求中,都包括此令牌。服务器认证要求令牌是否匹配对话里的令牌。假如不一致,则拒绝请求。
内容来自samhan666
SpringFramework
zvvq.cn
//形成 CSRF 令牌 zvvq.cn
CsrfToken csrfToken = csrf().generateToken(request);
// 在视图中包括 CSRF 令牌
copyright zvvq
// 认证要求令牌
内容来自zvvq
if (csrf().isTokenValid(request)) { 内容来自samhan
// 解决表单提交 内容来自samhan
} zvvq.cn
2. 同源策略
内容来自samhan666
同源策略限定浏览器仅允许来自与要求根源同样的域的要求。以在应用程序中强制执行同源策略,能够防止跨域的 CSRF 进攻。
zvvq好,好zvvq
SpringFramework
//开启同源策略
http.headers().frameOptions().sameOrigin();
内容来自samhan
3. Referer 头查验
copyright zvvq
Referer头包括发出请求的原始 URL。进行检查 Referer 头是否与应用程序的 URL配对,可以排除跨域的 CSRF 进攻。
zvvq.cn
SpringFramework 内容来自zvvq,别采集哟
//开启 Referer 头查验
copyright zvvq
http.headers().contentTypeOptions().header("Referer").deny; zvvq
4.HttpOnlyCookie
本文来自zvvq
HttpOnly标识严禁浏览器根据 JavaScript 浏览 cookie。这使得攻击者难以盗取对话 cookie并使用它去执行 CSRF 进攻。 zvvq好,好zvvq
SpringSecurity 内容来自samhan666
//开启HttpOnly cookie 内容来自zvvq,别采集哟
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.ALWAYS).and()
内容来自zvvq,别采集哟
.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
zvvq.cn
实战案例
zvvq好,好zvvq
SpringBoot运用
@SpringBootApplication zvvq.cn
public class App { 内容来自samhan666
public static void main(String[] args) { zvvq好,好zvvq
SpringApplication.run(App.class, args);
内容来自zvvq,别采集哟
} 内容来自zvvq,别采集哟
@PostMapping("/submit") 内容来自samhan
public String submit(@RequestParam String token) { 内容来自zvvq,别采集哟
// 认证 CSRF 令牌
if (csrf().isTokenValid(request)) { zvvq.cn
// 解决表单提交 内容来自zvvq,别采集哟
...
} zvvq好,好zvvq
}
} 内容来自zvvq
HTML视图 zvvq好,好zvvq
以上就是java框架中的CSRF进攻怎样预防?的详细内容,大量请关注其他类似文章! 本文来自zvvq