セキュリティ概要
FeedbackPulse SaaSはセキュリティを最優先として構築されています。このページでは、実装されているすべてのセキュリティ対策を説明します。
セキュリティレイヤー
トランスポートセキュリティ
| 機能 | 実装 |
|---|---|
| HTTPS | SESSION_SECURE_COOKIE=true とリダイレクトミドルウェアで強制 |
| HSTS | Strict-Transport-Security: max-age=31536000; includeSubDomains |
| セキュリティヘッダー | すべてのレスポンスに SecurityHeaders ミドルウェアで適用 |
認証
| 機能 | 実装 |
|---|---|
| パスワードハッシュ | 12ラウンドのBcrypt |
| 二要素認証 | 認証アプリ(Google Authenticator、Authy)経由のTOTP |
| ソーシャルログイン | GoogleおよびGitHubのOAuth2 |
| メール確認 | ダッシュボードアクセス前に必須 |
| 署名付きURL | チーム招待に使用(7日間有効) |
| セッション暗号化 | セッションは保存時に暗号化 |
認可
| 機能 | 実装 |
|---|---|
| ロールベースアクセス | 4つのロール:superadmin、tenant_admin、tenant_staff、customer |
| ミドルウェアガード | ルートレベルのアクセス制御 |
| テナント分離 | グローバルスコープによるテナント間データアクセスの防止 |
| プランベースのゲート | サブスクリプションプランの背後にロックされた機能 |
アプリケーションセキュリティ
| 機能 | 実装 |
|---|---|
| CSRF保護 | すべてのフォームにLaravel CSRFトークン(Webhook・ウィジェット除く) |
| XSS防止 | Blade {{ }} 自動エスケープ |
| SQLインジェクション | Eloquentパラメータ化クエリ |
| マス代入 | モデルの $fillable ホワイトリスト |
| レート制限 | ルートごとのスロットリング(5〜120リクエスト/分) |
APIセキュリティ
| 機能 | 実装 |
|---|---|
| APIキーハッシュ | SHA256ハッシュ化ストレージ |
| テナントごとのレート制限 | テナントごとに60リクエスト/分 |
| キーローテーション | 古いキーの失効、新しいキーの作成 |
| 最終使用追跡 | 使用するたびに last_used_at タイムスタンプを更新 |
データセキュリティ
| 機能 | 実装 |
|---|---|
| 機密データ暗号化 | プラットフォーム設定は保存時に暗号化 |
| GDPRコンプライアンス | データエクスポート、削除、匿名化ツール |
| データ保持 | プランの保持ポリシーに従って古いデータを自動削除 |
| 監査ログ | IPとユーザーエージェントで追跡されるすべての重要なアクション |
| CSVインジェクション防止 | エクスポート時に数式文字をサニタイズ |
Webhookセキュリティ
| 機能 | 実装 |
|---|---|
| HMAC署名 | アウトバウンドWebhookにSHA256署名 |
| SSRF保護 | WebhookURLのlocalhost、プライベートIPをブロック |
| Stripe検証 | Webhook署名の検証 |
| イベント重複排除 | イベントIDトラッキングによる二重処理の防止 |
HTTPセキュリティヘッダー
SecurityHeaders ミドルウェアによって適用されます:
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000; includeSubDomains
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: [デプロイメントごとに設定]