安全確認(セルフ監査)
このアプリが「今どこまで安全か」を正直に表示します。各項目には根拠を添えています。 確認できていないものは「安全」とは表示しません。
ログイン保護(全ページ) OK
未ログインのアクセスは全ページで /login にリダイレクトされる(/login・/register・静的ファイルを除く)。
根拠:設計で保証:auth.init_auth の before_request 中央ガード
パスワードの保存方式 未確認
アカウント未作成のため未確認(作成時に scrypt でハッシュ化される)。
根拠:実行時に確認:保存済みハッシュのアルゴリズム接頭辞
セッション管理 OK
Flask署名Cookie(HTTPOnly / SameSite=Lax / 14日で失効)。署名鍵はローカル非追跡ファイル。
根拠:設計で保証:auth.init_auth の app.config
クラウドワークスのID/パスワード保存 OK
保存していない。クラウドワークスへのログインは別ツール(cw_session.mjs)で人間が手ログインし、Cookieを使う方式。パスワードはどこにも保存しない。
根拠:設計で保証:保存処理が存在しない
完全自動応募・自動送信・自動クリック OK
実装していない。応募文は『下書き』の表示・コピーまでで、送信ボタンやフォーム送信処理は存在しない。応募は必ず人間がクラウドワークス上で行う。
根拠:設計で保証:送信系コードが存在しない(docs/安全運用ルール.md §1)
秘密情報の画面露出 OK
テンプレート・静的ファイル 66 件を走査し、APIキー/トークン/Webhook等の露出は検出されず。
根拠:実行時に確認:templates・static の静的走査
ネットワーク公開範囲 OK
127.0.0.1(ローカル)限定・debug=False固定。外部・LANには公開しない。
根拠:設計で保証:freelance_dashboard.py の app.run 固定値
ユーザー別データ分離 該当なし
現在は社長専用の単一ユーザー運用のため、分離すべき他ユーザーが存在しない(=該当なし)。将来マルチユーザー化(販売)する際は、current_user() をキーに jobs_store 等をユーザー単位へ分離する設計。それまでは『分離済み』とは主張しない。
根拠:該当なし:単一ユーザー(2026-07-07 社長決定)
未確認・今後の注意
- ユーザー別データ分離:現在は単一ユーザーのため該当なし。将来、他人に販売してマルチユーザー化する場合は、案件・応募文・プロフィール等をユーザー単位に分離する実装と、その分離テスト(AのデータがBに見えないこと)が別途必要。
- 秘密情報スキャンは templates / static の静的走査のみ。サーバー側ログやバックアップ内の秘密情報は本ページの対象外(別途手動監査)。
- 本ページの「設計で保証」項目は、コードから送信系・保存系の機能が存在しないことに依拠する。新機能追加時は必ず本セルフ監査を再確認すること。