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