跳到主要内容

安全指南

PulseHub 在构建时将安全性作为基础关注点。


身份验证

  • 密码: bcrypt,成本因子 12 — 永不以明文存储
  • 会话: HttpOnlySameSite=Strictuse_strict_mode,登录时重新生成
  • 恒定时间比较,通过 password_verify()hash_equals()

SQL 注入防护

所有查询使用 PDO 预处理语句,设置 EMULATE_PREPARES = false。用户输入永远不会被解释为 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/ 目录