zvvq技术分享网

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

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

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

zvvq.cn

Java 框架中的 CSRF 进攻防止

本文来自zvvq

介绍 本文来自zvvq

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

zvvq.cn

预防方法 copyright zvvq

1.应用 CSRF 令牌 zvvq.cn

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

内容来自samhan666

SpringFramework

内容来自samhan

//形成 CSRF 令牌 zvvq.cn

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

内容来自samhan

// 在视图中包括 CSRF 令牌 内容来自samhan

// 认证要求令牌 内容来自samhan666

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

内容来自zvvq,别采集哟

// 解决表单提交

内容来自zvvq

} copyright zvvq

2. 同源策略

内容来自samhan

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

SpringFramework

内容来自zvvq,别采集哟

//开启同源策略 内容来自zvvq,别采集哟

http.headers().frameOptions().sameOrigin(); zvvq好,好zvvq

3. Referer 头查验

zvvq.cn

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

SpringFramework copyright zvvq

//开启 Referer 头查验

本文来自zvvq

http.headers().contentTypeOptions().header("Referer").deny; 内容来自samhan666

4.HttpOnlyCookie

内容来自samhan666

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

zvvq

SpringSecurity

zvvq.cn

//开启HttpOnly cookie zvvq

http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.ALWAYS).and() 内容来自zvvq,别采集哟

.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()); 内容来自zvvq,别采集哟

实战案例 zvvq.cn

SpringBoot运用 内容来自samhan666

@SpringBootApplication

内容来自zvvq

public class App {

内容来自zvvq

public static void main(String[] args) {

zvvq.cn

SpringApplication.run(App.class, args);

zvvq.cn

}

zvvq好,好zvvq

@PostMapping("/submit") copyright zvvq

public String submit(@RequestParam String token) {

内容来自zvvq,别采集哟

// 认证 CSRF 令牌 zvvq

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

内容来自zvvq

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

... 内容来自samhan

} 本文来自zvvq

} 本文来自zvvq

} 内容来自zvvq

HTML视图 本文来自zvvq

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

内容来自zvvq