1. 神経質やせ男チャンネル
  2. FlaskーWTFで強化!sessionとCS..
FlaskーWTFで強化!sessionとCSRF入門
2026-03-13 03:16

FlaskーWTFで強化!sessionとCSRF入門

Flask-WTFのsession管理とCSRF対策を初心者向けに解説。
SECRET_KEYの役割、validate_on_submitの意味、
redirectによる二重送信防止まで、
セキュリティ強化のポイントを整理します。

#Python
#Flask
#FlaskWTF
#Webセキュリティ
#プログラミング学習
---
stand.fmでは、この放送にいいね・コメント・レター送信ができます。
https://stand.fm/channels/608520b1eeca46c0ab7489cd

感想

まだ感想はありません。最初の1件を書きましょう!

00:06
神経質やせ男です。今日もFlaskーWTFの続きをやっていきます。 前回はざっくり全体像を話しました。今回はいよいよ本番。
どこでセキュリティを強化しているのか。まずは流れから。 入力画面で名前とメールアドレスを入力。
状況を満たせばアウトプットHTMLへ。 合格したデータはサーバー側に一時保存されます。
それをアウトプットHTMLで表示しているわけです。 では確信。
AppConfigSecretKey="osurandom24". この乱数何に使うのか。これは秘密鍵です。
悪意ある第三者がデータを書き換えたり、 鳴りすましをしたりするのを防ぐための鍵。
このSecretKeyを使ってセッションの中身を安全に扱えるようにしています。
つまりこのデータは正規ルートから送られましたよと証明するための土台です。
次に重要なのがFormValidateOnSubmit。これは便利メソッド。
ポストかどうかを確認し、同時にバリデーションも実行する。 送信プラスチェックを一発でやってくれます。
そしてもう一つ大事なのがRedirect-url4-output。
なぜレンダーテンプレートじゃダメなのか。
レンダーテンプレートだとURLは入力画面のまま、 その状態で更新ボタンを押すとデータが再送信される可能性があります。
いわゆる二重送信。これを防ぐのがRedirect。
URL自体をアウトプットに切り替えることで安全に画面遷移させています。
さらにセッションに保存した値を再びフォームに戻す処理もあります。
これは入力ミス時の再表示を、ユーザー体験を落とさないための工夫です。
そして最後にフォームCSRFトークン。CSRFトークンです。
シークレットキーを使って、その時だけ有効な合言葉を発行しフォームに埋め込みます。
サーバー側は正しい合言葉かを検証。
これにより外部サイトから不正リクエストを防ぎます。
まとめると、シークレットキーで基盤を守る。
Validate on Submitで安全確認。
Redirectで二重送信防止。
CSRFトークンで外部攻撃対策。
WTFormsよりも一段堅牢。
これがフラスクWTFの強みです。
次回はこの仕組みを図解レベルでさらに整理します。
ここまで理解できれば、初心者卒業は目前です。
03:00
ということで次回は、ちょっとコートになりますが、
カケーボアプリ基礎完成、苦戦の裏側についてお話しする予定です。
ご静聴ありがとうございました。
03:16

コメント

スクロール