Django製CMSに問い合わせフォームを追加する|wheel連携・入力エラー・メール配送を検証する
Django製CMSへ問い合わせフォームを独立wheelとして追加しました。受付とメール配送を分離し、入力エラー再表示と複数配置のIDを修正。Docker E2Eで確認できた範囲と、入力値の一時保存・配布物検査に残る課題をまとめます。
Django、Python、AWS、Linux、セキュリティ、CVE、基本情報技術者、応用情報技術者、ITパスポートの用語を、図解と実務手順で解説します。個人開発kurutann.comの検証記録や障害対応事例も公開しています。
タグ「Django」の記事を表示中× クリア
Django製CMSへ問い合わせフォームを独立wheelとして追加しました。受付とメール配送を分離し、入力エラー再表示と複数配置のIDを修正。Docker E2Eで確認できた範囲と、入力値の一時保存・配布物検査に残る課題をまとめます。
公開記事の自動保存とリビジョン復元から承認フローを迂回できた認可不備を、失敗するテストから始めて修正しました。権限判定、競合制御、認証基盤、バックアップ、TLSまでを本番境界として見直した記録です。
coturn 4.12.0以前のloopback判定回避、django-haystack 3.4.0未満の任意コード実行、2026年8月25日に公開されたOpenSSL修正版を取り上げます。影響条件の確認からDocker Composeでの更新、正常系・異常系の検証、再発防止まで実務向けに説明します。
10日で作るDjango CMSの10日目。DjangoをPostgreSQL・Redis・Gunicorn・nginx・Docker Composeで本番相当構成へ移行し、HSTS、Proxy設定、死活監視、バックアップと復元訓練まで実装します。
TOTP・リカバリコード・パスキー(WebAuthn)を実装し、管理者にはMFAを必須にします。そのうえで「有効にしたはずの多要素認証を回避できる経路」が2つ見つかりました。パスワードだけで管理画面へ入れる件と、パスキー1本で通る件です。
django-allauthでメール認証・ワンタイムコードログイン・ソーシャルログインを導入します。コードの強度は桁数ではなく「桁数×有効期限×試行回数×発行制限」で決まります。
管理画面を自作し、ブロックエディターと自動保存を作ります。同時編集の衝突検出を更新日時ではなく版番号で行う理由を、実際に落ちたテストとともに説明します。
OGP・構造化データ・RSS・XMLサイトマップを実装します。テストが全部通っている状態でサイトマップだけ別ドメインを指していたバグを、ブラウザで見つけた経緯も書きました。
下書き/レビュー待ち/公開の3状態、未来日時による予約公開、リビジョン履歴と差し戻しを実装します。公開判定をQuerySetに一本化して「見えてはいけない記事」を消す設計です。
画像アップロードを拡張子ではなく中身で検証し、コメントにレート制限とハニーポットを入れ、サイト内検索を作ります。X-Forwarded-Forを右から数える理由も解説します。
記事の一覧・詳細・投稿・編集・削除を作ります。非公開記事に403ではなく404を返す理由、公開権限をadd/change/deleteから切り離す設計まで踏み込みます。
記事・カテゴリ・タグ・固定ページをモデルとして設計します。ForeignKeyのon_delete、日本語タイトルでslugifyが空になる問題、autocomplete_fieldsのadmin.E040まで。
Django 5.2.16には、GeoDjangoを通じたファイル書込み・SSRF・条件付きRCE、長大な言語コードによるDoS、GeometryCollectionによるクラッシュ、Django AdminのURLFieldによる格納型XSSが存在します。Django 5.2.17への更新方法、影響確認、更新後の動作確認、WAF・IPS・EDRによる補助対策まで解説します。
Djangoの環境構築から、あとで差し替えるのが極端に難しくなるカスタムユーザーモデルの作成まで。連載「10日で作るDjango CMS」の1日目を、実際に出たエラーごと記録します。
CSRFは、ログイン中のブラウザに利用者が意図しないリクエストを送らせる攻撃です。SameSite Cookieの普及で単純な攻撃は減りましたが、GETによる状態変更、API、SPA、OAuth、WebSocket、兄弟サブドメインなどの攻撃面は残っています。本記事ではCSRFの歴史と種類、トークン防御の仕組み、Djangoでの設定、確認コマンド、テスト、再発防止まで解説します。
Django 5.2.15以前には、SQLインジェクション、ASGIリクエストによるDoS、Redis共有キャッシュからの情報漏えい、セッション固定、Django Adminの権限検証不備などが存在します。本記事では、影響を受ける構成、確認コマンド、Django 5.2.16への安全な更新方法、更新後の動作確認、WAF・IPS・EDRによる補助対策を実務向けに解説します。
kurutann.comの /myroom/town/ で動く3D MMO風タウン&アクションRPGの全実装を開発者目線で解説。税制・王政・NPC系図シムから城壁の菱形数学、決定論シード生成、冪等報酬、cronなしの経過まとめtick、TypeScript 7.0移行まで、個人VPS 1台でMMOを成立させた設計の記録です。
一つの Django プロジェクトに、技術ブログ、ゲームコミュニティ CMS、学習アプリ、3D コンテンツなどの機能を追加し続けて数年。ついに、管理画面からサブドメインを指定して新しいサイトを作成し、そのまま公開できる「マルチテナント CMS プラットフォーム」への再編を完了しました。 この記事では、既存サイトを壊さずにマルチサイト化するために行った設計判断、実際に踏んだ罠、セキュリティ対策、移行...
バンダイチャンネル不正アクセス事案を公開情報から整理し、Django / django-allauthで退会・メール変更などの重要操作APIを守る認可、再認証、CSRF、レート制限、監査ログ、復旧設計を解説します。
運用しているWebアプリに、領収書の画像をアップロードするとOCR(光学文字認識)で自動的にテキストを読み取り、家計簿に自動記帳する機能を実装しました。今回はその導入過程で経験した成功と失敗、改善の試みについて記録します。やりたかったこと領収書の画像をアップロード → OCRでテキスト抽出店舗名・日付・合計金額・明細を正規表現でパース前回の同一店舗レシートとの差分検知(価格変動アラート)家計簿(L...