Security
管理画面のある案件での実装例
管理画面のある案件で、実際に実装している守り方です。何をどう減らしているかと、その限界を書いています。
誰が入れるか
管理画面に入れる人を、メールアドレス単位で絞ります。
管理画面の入口に Cloudflare Access を置きます。許可したメールアドレスの人だけが、メールに届く使い捨てのコード(ワンタイムコード)で入れます。
使う人の名簿は1か所に置きます。そこを直せば、Access で守っているすべての画面に反映されます。
期限は24時間です。名簿から外しても、すでに開いている画面は期限が切れるまで使えることがあります。
管理画面の API・Worker の直 URL にも同じ入口を付けます。さらに API 側でも、Access が発行した確認票(JWT)の発行元と宛先をもう一度確かめます。
管理画面の確認用・試作用の環境と、Cloudflare Pages がデプロイのたびに発行するプレビュー URL にも、同じ入口を付けます。
使わなくなった公開 URL(Cloudflare の workers.dev)は閉じます。保護の外に入口を残さないためです。
管理画面などの画面には、検索結果に出さない指示(noindex)と、他のサイトへの埋め込みを禁止するヘッダーを付けます。
入った後に何が見えるか
入れた人に見せる範囲と、残す記録を決めます。
購入希望者の一覧は、データベースの「ビュー」(見せてよい項目だけを切り出したもの)からだけ読みます。ビューには氏名・連絡先の列がないので、元の表に列を足しても、ビューを直さない限り一覧には出ません。
誰が・何に対して・どんな操作をして・結果がどうだったか(成功・拒否・競合・エラー)を、記録として残します。
この実装例では、LINE のサービスメッセージの本文は、受付番号・種別・日時・定型文だけです。連絡先や入力内容は載せず、中身はミニアプリのマイページで見てもらいます。
お客様の本人確認
お客様に新しいパスワードを作っていただかず、LINE のログインで本人を確かめます。
LIFF から受け取った ID トークンを、LINE の公開鍵で検証します。発行元と、自社のチャネル宛てかどうかも照合します。
ログイン後の状態は Cookie で持たせます。HttpOnly(画面のスクリプトから読めない)・Secure(https のときだけ送る)・SameSite=Lax(他のサイトからの送信には原則付けない)を指定し、署名(HMAC)で改ざんを見分けます。期限も付けます。
秘密情報の置き方
署名用の鍵など、漏れると困る値の扱いです。
コードにも、インフラ構成の定義(Terraform)にも書かず、Cloudflare に直接登録します。Terraform に入れると、状態ファイルに平文で残るためです。
開発の進め方と検査
テストや CI などの検査は品質基準のページに、セキュリティの考え方の解説はブログにまとめています。
2026.11.12
2026年の不正アクセスでは、管理画面に正規のID・パスワードで入られて情報を見られたり、管理アカウントで受取口座を書き換えられたりする事例が公表されました。管理画面を「誰が入れるか・何が見えるか」で守る考え方と、グランドリームの実装例7項目、発注前に開発会社へ確かめたい点をまとめます。
2026.11.12
情報漏えいはリリース前の検査だけでは防げません。NISTのSSDF、OWASP、IPAの資料をもとに、設計・実装・依存関係・CI/CD・テスト・運用の段階ごとにやるべき対策と、小さなチームの導入順、発注者が開発会社に聞くべき点をまとめました。
2026.11.12
2026年秋に相次いだ不正アクセスによる情報漏えいを、IPA・警察庁・セキュリティ企業の公表資料をもとに整理。漏れた情報が「だます・入る・なりすます」の連鎖に使われる仕組みと、企業と個人が先に手を付けたい対策をまとめました。
限界と、発注前に確かめたい点
ここまでの対策で、危険がなくなるわけではありません。案件ごとに要件を確認し、構成を決めます。
パスワードを持たない代わりに、守りの要は登録したメールアドレスに移ります。メールには二段階認証を設定し、共有ではなく一人ひとりのアドレスを登録することをおすすめします。
使う人を名簿から外しても、すでに開いている画面は、ログイン状態の期限(24時間)まで使えることがあります。急ぐ場合は、ご相談ください。