zvvq技术分享网

java框架中的CSRF攻击如何预防?(csrf攻击的危害

作者:zvvq博客网
导读java 框架中预防 csrf 攻击的方法包括:使用 csrf 令牌:生成并存储随机字符串以验证请求的合法性。同源策略:限制来自不同域的请求,防止跨域 csrf 攻击。referer 头检查:验证 referer

java 框架中防止 csrf 攻击方法包括:应用 csrf 令牌:形成并存放随机字符串以验证要求的合法性。同源策略:限定来自不同域的要求,避免跨域 csrf 进攻。referer 头查验:认证referer 头是否与应用软件 url 配对,以排除跨域 csrf 进攻。httponly cookie:严禁浏览器根据 javascript 浏览 cookie,减少对话 cookie被盗取风险。

内容来自zvvq,别采集哟

内容来自samhan666

Java 框架中的 CSRF 进攻防止 内容来自zvvq

介绍 内容来自samhan666

跨网站要求仿冒 (CSRF) 进攻是一种黑客攻击,攻击者运用受害人的合法对话令牌向远程 Web 应用软件推送故意要求。在 Java 框架中,有几种方法能够防止 CSRF 进攻。

zvvq.cn

预防方法 zvvq.cn

1.应用 CSRF 令牌 copyright zvvq

CSRF令牌是一个随机字符串,在账号登录时形成并存储在客户的对话中。在每个表单提交要求中,都包括此令牌。服务器认证要求令牌是否匹配对话里的令牌。假如不一致,则拒绝请求。

copyright zvvq

SpringFramework

copyright zvvq

//形成 CSRF 令牌

内容来自zvvq

CsrfToken csrfToken = csrf().generateToken(request);

内容来自samhan666

// 在视图中包括 CSRF 令牌

zvvq

// 认证要求令牌

zvvq

if (csrf().isTokenValid(request)) {

内容来自samhan666

// 解决表单提交 内容来自zvvq,别采集哟

} zvvq

2. 同源策略

内容来自zvvq,别采集哟

同源策略限定浏览器仅允许来自与要求根源同样的域的要求。以在应用程序中强制执行同源策略,能够防止跨域的 CSRF 进攻。

zvvq

SpringFramework 内容来自samhan

//开启同源策略 zvvq.cn

http.headers().frameOptions().sameOrigin();

zvvq好,好zvvq

3. Referer 头查验 内容来自zvvq

Referer头包括发出请求的原始 URL。进行检查 Referer 头是否与应用程序的 URL配对,可以排除跨域的 CSRF 进攻。

内容来自samhan666

SpringFramework

zvvq.cn

//开启 Referer 头查验

内容来自samhan

http.headers().contentTypeOptions().header("Referer").deny; copyright zvvq

4.HttpOnlyCookie copyright zvvq

HttpOnly标识严禁浏览器根据 JavaScript 浏览 cookie。这使得攻击者难以盗取对话 cookie并使用它去执行 CSRF 进攻。

内容来自samhan666

SpringSecurity

内容来自zvvq,别采集哟

//开启HttpOnly cookie

内容来自samhan

http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.ALWAYS).and()

zvvq

.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());

copyright zvvq

实战案例 copyright zvvq

SpringBoot运用

copyright zvvq

@SpringBootApplication

zvvq.cn

public class App {

内容来自zvvq

public static void main(String[] args) { 内容来自samhan

SpringApplication.run(App.class, args);

内容来自samhan666

} 本文来自zvvq

@PostMapping("/submit")

zvvq.cn

public String submit(@RequestParam String token) { 本文来自zvvq

// 认证 CSRF 令牌 copyright zvvq

if (csrf().isTokenValid(request)) { 本文来自zvvq

// 解决表单提交

zvvq

... copyright zvvq

} 内容来自zvvq,别采集哟

}

内容来自zvvq

} zvvq好,好zvvq

HTML视图

本文来自zvvq

以上就是java框架中的CSRF进攻怎样预防?的详细内容,大量请关注其他类似文章! zvvq.cn