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

セキュリティガイド

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


認証

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

SQL インジェクション防止

すべてのクエリは EMULATE_PREPARES = falsePDO プリペアドステートメントを使用します。ユーザー入力が 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/ ディレクトリを定期的にバックアップ