セキュリティガイド
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 を安 全に保つ
- PHP と MySQL を最新の状態に保つ
- すべての場所で HTTPS を使用
- API キーを定期的にローテーション
- cron ログを監視
- データベースと
config/ディレクトリを定期的にバックアップ