PHP密码保护系统文档

生成时间: 2026-03-04 00:10:12 | 分类: guides | 来源: PHP密码保护系统文档.md

PHP密码保护系统文档

📋 系统概述

基于PHP 8.2的后端密码保护系统,为小明团队文档中心提供专业级安全保护。

核心特性

🔧 技术架构

文件结构

` /www/wwwroot/claw.3s3m.net/ ├── index.php # 主入口文件(PHP版本) ├── auth.php # 认证系统核心 ├── index.html # 原始前端版本(备份) ├── index.html.backup # 原始备份 ├── reports/ # 分析报告目录 ├── guides/ # 使用指南目录 ├── configs/ # 配置文档目录 ├── templates/ # 模板文件目录 └── ... # 其他目录 `

认证流程

`
  1. 用户访问 index.php
  2. PHP检查Session和Cookie认证状态
  3. 已认证 → 显示文档中心
  4. 未认证 → 显示密码输入弹窗
  5. 用户输入密码 → 表单提交到后端
  6. PHP验证密码 → 正确则设置Session和Cookie
  7. 重定向到首页 → 显示文档中心
`

🔐 安全特性

1. 密码安全

`php // 密码使用bcrypt哈希存储 define('PASSWORD_HASH', password_hash('580511', PASSWORD_DEFAULT));

// 验证时使用password_verify() function verifyPassword($password) { return password_verify($password, PASSWORD_HASH); } `

2. Session安全

3. Cookie安全

`php setcookie( COOKIE_NAME, $cookie_value, [ 'expires' => $expire_time, 'path' => '/', 'domain' => $_SERVER['HTTP_HOST'] ?? '', 'secure' => isset($_SERVER['HTTPS']), // 自动HTTPS检测 'httponly' => true, // 防止XSS攻击读取Cookie 'samesite' => 'Lax' // CSRF防护 ] ); `

4. Cookie数据结构

`json { "token": "随机32字节十六进制字符串", "expire": 1677600000, "user_agent": "用户代理MD5哈希" } `

5. 安全HTTP头

`php header('X-Content-Type-Options: nosniff'); header('X-Frame-Options: DENY'); header('X-XSS-Protection: 1; mode=block'); header('Cache-Control: no-store, no-cache, must-revalidate'); `

🚀 部署步骤

步骤1: 准备文件

  1. 创建 auth.php - 认证系统核心
  2. 创建 index.php - 主入口文件
  3. 备份原始 index.html

步骤2: 部署文件

`bash

复制文件到网站目录

sudo cp auth.php /www/wwwroot/claw.3s3m.net/ sudo cp index.php /www/wwwroot/claw.3s3m.net/

设置权限

sudo chown www:www /www/wwwroot/claw.3s3m.net/auth.php /www/wwwroot/claw.3s3m.net/index.php sudo chmod 644 /www/wwwroot/claw.3s3m.net/auth.php /www/wwwroot/claw.3s3m.net/index.php `

步骤3: 测试验证

  1. 访问 https://claw.3s3m.net/http://claw.3s3m.net/
  2. 首次访问显示密码弹窗
  3. 输入密码 580511
  4. 成功登录显示文档中心
  5. 关闭浏览器重新访问,应直接进入

步骤4: 验证功能

🔄 维护操作

修改密码

  1. 编辑 auth.php 文件
  2. 修改 CORRECT_PASSWORD 常量
  3. 系统会自动重新生成密码哈希

修改有效期

`php // 修改auth.php中的常量 define('COOKIE_EXPIRE_DAYS', 90); // 改为90天 define('SESSION_EXPIRE_DAYS', 90); `

强制所有用户重新登录

`bash

重启PHP-FPM(清除所有Session)

sudo systemctl restart php8.2-fpm

或者修改Session存储路径

`

查看当前登录状态

访问:https://claw.3s3m.net/auth.php?action=check

🐛 故障排除

问题1: 密码弹窗不显示

可能原因: 解决方案: `bash

检查PHP错误日志

sudo tail -f /var/log/php8.2-fpm.log

检查文件权限

ls -la /www/wwwroot/claw.3s3m.net/auth.php ls -la /www/wwwroot/claw.3s3m.net/index.php

测试PHP文件

curl -s http://claw.3s3m.net/auth.php?action=check `

问题2: 密码验证失败

可能原因: 解决方案: `php // 在auth.php中添加调试信息 error_log('Received password: ' . ($_POST['password'] ?? 'empty')); `

问题3: Cookie不保存

可能原因: 解决方案: `php // 检查Cookie设置 var_dump($_COOKIE);

// 检查HTTP头 header('Set-Cookie: test=value; path=/'); `

问题4: 会话不保持

可能原因: 解决方案: `bash

检查Session目录权限

ls -la /var/lib/php/sessions/

修改Session存储路径

sudo chmod 777 /var/lib/php/sessions/ `

📊 API接口

认证检查

` GET /auth.php?action=check
响应: {"authenticated": true false}
`

登录请求

` POST /auth.php?action=login 参数: password=xxx
响应: {"success": true false, "message": "xxx"}
`

退出登录

` GET /auth.php?action=logout 响应: {"success": true, "message": "已退出登录"} `

🔍 安全审计

代码审计要点

  1. 输入验证: 所有用户输入都经过验证
  2. 输出转义: 使用htmlspecialchars()输出
  3. SQL注入: 不涉及数据库,无需防护
  4. XSS防护: HTTP头防护 + 输出转义
  5. CSRF防护: SameSite Cookie + 表单验证

建议增强措施

  1. 添加HTTPS: 强制使用HTTPS
  2. 登录尝试限制: 防止暴力破解
  3. IP白名单: 限制访问IP范围
  4. 双因素认证: 增加短信/邮箱验证
  5. 审计日志: 记录所有登录尝试

📝 配置说明

PHP要求

服务器配置

`nginx

Nginx配置示例

location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } `

Session配置(php.ini)

` session.save_handler = files session.save_path = "/var/lib/php/sessions" session.cookie_lifetime = 5184000 # 60天 session.gc_maxlifetime = 5184000 `

🧪 测试用例

功能测试

安全测试

兼容性测试

📞 技术支持

紧急恢复

如果系统出现问题,可恢复原始版本: `bash

恢复原始前端版本

sudo cp /www/wwwroot/claw.3s3m.net/index.html /www/wwwroot/claw.3s3m.net/index.php

或者直接使用index.html

sudo mv /www/wwwroot/claw.3s3m.net/index.php /www/wwwroot/claw.3s3m.net/index.php.bak `

获取帮助

  1. 检查PHP错误日志:/var/log/php8.2-fpm.log
  2. 检查Nginx/Apache错误日志
  3. 测试PHP文件:curl -s http://claw.3s3m.net/auth.php?action=check
  4. 检查Session目录权限

---

版本: 1.0 (PHP安全版) 更新日期: 2026-03-04 密码: 580511 有效期: 60天 技术支持: 数智部 此系统为专业级密码保护方案,相比纯前端方案提供真正的安全性。
返回