親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

Spring Boot + ThymeleafのCSRFトークン設定は超簡単


Spring Boot + ThymeleafにおけるCSRF対策

近頃のWebアプリケーションフレームワークにおけるCSRF対策は自動で簡単にできるものが多いですが、Spring BootにおけるCSRF対策でのformタグへのトークン付与もとても簡単です。
「spring-boot-starter-security」というライブラリを使い、formタグに対して、「th:action=〜」の記述さえすれば自動的に付与されるのです。
では実際にやってみましょう。

spring-boot-starter-securityライブラリの追加

pom.xmlのdependenciesの中に以下を追加してください。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-security</artifactId>
</dependency>

@EnableWebSecurityの追加

WebSecurityConfigurerAdapterを継承したクラスに、@EnableWebSecurityのアノテーションを追加しておきます。

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

}


formの作成

あとはHTMLで、以下のようなformを作成し、th:actionの記述もしてください。

<form th:action="@{/testPost}" action="/testPost" method="post">
 ・
 ・
 ・
</form>

実際に表示を見てみると、

<form action="/testPost" method="post">
  <input type="hidden" name="_csrf" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">
</form>

のようなタグが入っているかと思います。

最近のフレームワークはやっぱり便利ですね〜。


Fire TV Stick

Fire TV Stick

新登場  Fire TV Stick 4K - Alexa対応音声認識リモコン付属

新登場 Fire TV Stick 4K - Alexa対応音声認識リモコン付属

Fire HD 10 タブレット (10インチHDディスプレイ) 64GB

Fire HD 10 タブレット (10インチHDディスプレイ) 64GB