メインコンテンツまでスキップ

セキュリティガイド

PulseHub はセキュリティを基本的な関心事として構築されています。


認証​

  • パスワード: bcrypt(コストファクター 12)— 平文で保存されることはありません
  • セッション: HttpOnly、SameSite=Strict、use_strict_mode、ログイン時に再生成
  • 定数時間比較(password_verify() と hash_equals() を使用)

SQL インジェクション防止​

すべてのクエリは EMULATE_PREPARES = false の PDO プリペアドステートメントを使用します。ユーザー入力が SQL 構文として解釈されることはありません。


XSS 防止​

すべての動的出力は e() → htmlspecialchars(ENT_QUOTES | ENT_HTML5, 'UTF-8') でエスケープされます。


CSRF 保護​

SameSite=Strict cookie がクロスサイトリクエストを防止します。ログインおよびインストーラーフォームには _token 隠しフィールドが含まれます。


Webhook 署名検証​

  • WhatsApp、Facebook、Instagram: HMAC-SHA256(App Secret を使用)
  • Viber: HMAC-SHA256(Auth Token を使用)
  • すべて hash_equals()(定数時間)を使用

ディレクトリアクセス制御​

機密ディレクトリ(config/、app/、data/)は .htaccess および nginx 設定により Web アクセスがブロックされています。


推奨セキュリティヘッダー​

<IfModule mod_headers.c>
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

PulseHub を安全に保つ​

  1. PHP と MySQL を最新の状態に保つ
  2. すべての場所で HTTPS を使用
  3. API キーを定期的にローテーション
  4. cron ログを監視
  5. データベースと config/ ディレクトリを定期的にバックアップ