安全指南
PulseHub 在构建时将安全性作为基础关注点。
身份验证
- 密码: bcrypt,成本因子 12 — 永不以明文存储
- 会话:
HttpOnly、SameSite=Strict、use_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 安全
- 保持 PHP 和 MySQL 更新
- 全面使用 HTTPS
- 定期轮换 API 密钥
- 监控 cron 日志
- 定期备份数据库和
config/目录