java 框架中防止 csrf 攻击方法包括:应用 csrf 令牌:形成并存放随机字符串以验证要求的合法性。同源策略:限定来自不同域的要求,避免跨域 csrf 进攻。referer 头查验:认证referer 头是否与应用软件 url 配对,以排除跨域 csrf 进攻。httponly cookie:严禁浏览器根据 javascript 浏览 cookie,减少对话 cookie被盗取风险。 内容来自samhan
Java 框架中的 CSRF 进攻防止
介绍 本文来自zvvq
跨网站要求仿冒 (CSRF) 进攻是一种黑客攻击,攻击者运用受害人的合法对话令牌向远程 Web 应用软件推送故意要求。在 Java 框架中,有几种方法能够防止 CSRF 进攻。
预防方法 copyright zvvq
1.应用 CSRF 令牌 zvvq.cn
CSRF令牌是一个随机字符串,在账号登录时形成并存储在客户的对话中。在每个表单提交要求中,都包括此令牌。服务器认证要求令牌是否匹配对话里的令牌。假如不一致,则拒绝请求。
内容来自samhan666
SpringFramework
//形成 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,别采集哟
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
public class App {
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) {
// 认证 CSRF 令牌 zvvq
if (csrf().isTokenValid(request)) {
// 解决表单提交 内容来自samhan
... 内容来自samhan
} 本文来自zvvq
} 本文来自zvvq
} 内容来自zvvq
HTML视图 本文来自zvvq
以上就是java框架中的CSRF进攻怎样预防?的详细内容,大量请关注其他类似文章!
内容来自zvvq