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,别采集哟

zvvq

Java 框架中的 CSRF 进攻防止

内容来自samhan666

介绍 copyright zvvq

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

内容来自samhan666

预防方法 copyright zvvq

1.应用 CSRF 令牌 zvvq.cn

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

内容来自samhan666

SpringFramework

zvvq.cn

//形成 CSRF 令牌 zvvq.cn

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

zvvq.cn

// 在视图中包括 CSRF 令牌

copyright zvvq

// 认证要求令牌

内容来自zvvq

if (csrf().isTokenValid(request)) { 内容来自samhan

// 解决表单提交 内容来自samhan

} zvvq.cn

2. 同源策略

内容来自samhan666

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

zvvq好,好zvvq

SpringFramework

zvvq好,好zvvq

//开启同源策略

zvvq好,好zvvq

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运用

内容来自samhan666

@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 令牌

zvvq.cn

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

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

...

内容来自samhan

} zvvq好,好zvvq

}

zvvq好,好zvvq

} 内容来自zvvq

HTML视图 zvvq好,好zvvq

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