最終更新: 2026-05-18
Ptera は Supabase Auth を基盤に、以下の方式を提供します。
新規登録時、および試行が一定回数を超えたログイン時には Cloudflare Turnstile による Bot 検証を要求します。サインアップは IP/email 単位、サインインは IP/email 単位でレート制限を適用しています。Apple OAuth はサポート停止中です。
ユーザーの個人情報 (email・OAuth 識別子・MFA factor 等) は Supabase Auth により管理され、当方サーバーからは service_role キー経由でのみ参照可能です。クライアント (ブラウザ) には公開可能なフィールドのみを返却し、email・stripe_customer_id・auth 内部 ID は API レスポンスに含めません。
通信はすべて TLS (HTTPS) で暗号化し、API キー類はサーバー側環境変数に保管。ブラウザバンドルには公開してよい値 (NEXT_PUBLIC_ 接頭辞付き) のみを含めます。
主要テーブルすべてに PostgreSQL の Row Level Security (RLS) を適用し、他人の private データはそもそもクエリに乗らない設計です。認可はクライアントではなく DB / サーバーで判定します。
ユーザーには 4 段階のロールを設定しています。owner だけが admin/owner に対する操作 (ロール変更・BAN・ハード削除) を行えます。自分自身のロール変更・BAN・削除は誰もできません。
robots.txt と X-Robots-Tag (noai / noimageai) ヘッダーで、主要な AI クローラー (GPTBot / ClaudeBot / CCBot / Applebot-Extended 等) によるコンテンツ学習を技術的に拒否しています。ユーザーが投稿したコンテンツが外部 AI の訓練データに勝手に取り込まれないよう対策しています。
admin / moderator のロール変更・BAN・ハード削除・通報対応などの重要操作は audit_logs テーブルに記録され、staff のみ閲覧可能です。事故調査・コンプライアンス対応・誤操作の原因究明に使用します。一般ユーザーには公開しません。
投稿・コメント等の削除は原則として論理削除 (deleted_at) で扱い、一定期間経過後に物理削除します。アカウント削除時は CASCADE で関連データも削除されます。GDPR / 個人情報保護法の削除請求にも対応します。
投稿・コメント・ユーザー・プランは通報可能です。通報情報は被通報者から見えない状態で保管され、moderator / admin / owner のみが確認・対応します。悪意ある連続通報は rate-limit と監査ログで抑制しています。
デフォルトで使用するのは認証セッション (Supabase HttpOnly Cookie) と表示設定 (テーマ等) の必須 Cookie のみです。アクセス解析 (Google Analytics) は Cookie 同意で「すべて許可」を選んだ場合にのみ読み込まれます。
万が一の情報漏洩・不正アクセスを検知した場合、原則として以下の流れで対応します。
セキュリティ上の問題を発見された場合、公開フォーラムや SNS で詳細を投稿せず、お問い合わせフォームから「セキュリティ」カテゴリで直接ご連絡ください。可能な範囲で再現手順・影響範囲・PoC を添えていただけると対応が早まります。当方は適切な対応と謝意をもって扱います。