Django Security Lab は、Django 初心者向けに Web アプリケーションの脆弱性を視覚的・インタラクティブに体験できるセキュリティ学習ラボです。意図的に脆弱性を組み込んだ模擬銀行アプリ(SafeBank)と、実際の攻撃をシミュレーションする悪意のある Web サイト(EvilSite)の 2 つで構成されており、攻撃の仕組みから Django の対策方法までを一貫して学べます。各自のローカル環境で動作するため、GitHub からリポジトリをクローンするだけで学習を開始できます。
Django Security Lab は、次の 2 つの課題意識から生まれました。
- Web アプリの脆弱性を 初心者向けに、正確かつ分かりやすく 説明する教材が少ない
- Django はセキュリティを重視したフレームワークであるにもかかわらず、その 組み込みセキュリティ機能が初心者には理解しにくい 形で実装されている
これらを解決するため、攻撃の流れと対策の因果関係が視覚的に追えるインタラクティブなラボを開発しました。
ラボは 2 つのアプリで構成されています。
-
SafeBank(
safebank.com:8000): OWASP Top 10 に基づく脆弱性を意図的に組み込んだ模擬銀行アプリ。学習者はソースコードを実際に動かしながら脆弱性の挙動を確認し、Django の組み込み機能(CSRF トークン、自動エスケープ、@transaction.atomicなど)を使った修正方法を学びます。 -
EvilSite(
evilsite.com:8001): SafeBank に対するクロスサイト攻撃をシミュレーションする攻撃者サイト。CSRF・クリックジャッキング・認証情報の窃取・Cookie 窃取などの攻撃ペイロードが組み込まれており、攻撃者側の動きをリアルに体験できます。

