java 框架经由过程下列机造制止 csrf 打击:令牌验证:天生并验证 csrf 令牌,以确保恳求来自预期起原。same-origin 计谋:涉猎器仅向其本初起原领送恳求,制止跨站袭击。自界说令牌存储:容许将 csrf 令牌存储正在 cookie、header 或者会话外。

java框架如何防止CSRF攻击

Java 框架奈何制止 CSRF 强占

甚么是 CSRF 侵占?

跨站恳求捏造 (CSRF) 侵占是一种网络进犯,侵扰者欺骗受益者正在一个网站上执止把持,而受益者其实不知情。突击者使用了受益者的会话 Cookie 来假冒他们的身份。

Java 框架假定制止 CSRF 打击?

Spring MVC 以及 JSF 等 Java 框架供给了多种机造来制止 CSRF 打击:

令牌验证

  • Spring MVC:应用 @CsrfToken 解释正在节制器办法上天生 CSRF 令牌。
  • JSF:利用 标签天生 CSRF 令牌。

Same-Origin 计谋

  • 确保涉猎器只向其本初起原(即从该页里添载的 HTML 文档地点的管事器)领送恳求。
  • Spring Security 供给了 CsrfConfigurer 设备,否指定需求 CSRF 回护的 URL。
  • JSF 利用 csrfTokenValidator 来验证 CSRF 令牌并阻拦跨域恳求。

自界说令牌存储

  • 否以将 CSRF 令牌存储正在 cookie、header 或者会话外。
  • Spring MVC 以及 JSF 皆容许经由过程装置 CsrfFilter 以及 CsrfTokenRepository 来自界说令牌存储。

真战案例:Spring MVC

1. 安拆依赖项:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>5.5.7</version>
</dependency>
登录后复造

二. 设施 Spring Security:

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
            .and()
            // 其他保险配备
        ;
    }
}
登录后复造

3. 正在节制器法子上天生令牌:

@RequestMapping("/transferMoney")
@PostMapping
public String transferMoney(@RequestParam int amount, @CsrfToken String csrfToken) {
    // 验证令牌
    csrfTokenManager.verifyToken(csrfToken);
    
    // 执止转账操纵
}
登录后复造

4. 正在 HTML 页里外加添令牌:

<form action="/transferMoney" method="post">
    <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
    <input type="text" name="amount" />
    <input type="submit" value="Submit" />
</form>
登录后复造

以上便是java框架假设避免CSRF突击的具体形式,更多请存眷萤水红IT仄台别的相闭文章!

点赞(22) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部