查询密码保护

查询设计 2 次浏览 2025-11-29
关键词:查询密码,密码保护,访问控制,安全验证

查询密码保护

功能介绍

查询密码保护功能允许管理员为特定的查询模板设置访问密码,用户必须输入正确密码才能使用查询功能。这提供了额外的安全层,保护敏感数据的查询访问。

主要功能

  1. 密码保护开关:控制查询模板是否需要密码验证
  2. 访问密码设置:设置具体的访问密码
  3. 密码加密存储:使用安全的密码哈希算法存储密码
  4. 会话管理:密码验证成功后,在会话期间无需重复输入

使用方法

1. 启用密码保护

使用路径:查询设计器 → 设置标签页
  1. 进入查询设计器页面
  2. 选择要保护的查询模板
  3. 切换到"设置"标签页
  4. 找到"访问控制"区域
  5. 启用"启用密码访问"开关
  6. 在"访问密码"字段中输入密码
  7. 点击"保存设置"按钮

2. 访问受保护的查询

  1. 用户访问需要密码的查询模板
  2. 系统检测到查询需要密码保护
  3. 显示密码输入界面
  4. 用户输入正确的访问密码
  5. 点击"验证"按钮
  6. 验证成功后进入查询界面
  7. 在会话期间无需重复输入密码

3. 禁用密码保护

  1. 在查询设计器的设置页面
  2. 关闭"启用密码访问"开关
  3. 系统自动清空存储的密码
  4. 保存设置后密码保护被移除

使用路径

  • 设置密码保护:查询设计器 → 设置标签页
  • 密码验证页面:访问受保护的查询时自动跳转
  • 执行查询/public/query_execute.php?template_id=查询ID

安全特性

1. 密码加密

  • 使用 password_hash() 函数进行密码哈希
  • 采用 PASSWORD_DEFAULT 算法(当前为 bcrypt)
  • 每次密码更改都会重新生成哈希值
  • 密码以加密形式存储在数据库中

2. 会话管理

  • 密码验证成功后设置会话标志
  • 使用模板ID作为会话键,避免冲突
  • 会话期间无需重复验证密码
  • 会话过期后需要重新验证

3. 访问控制

  • 未验证密码时无法访问查询功能
  • 密码错误时显示友好错误提示
  • 提供返回导航,避免用户被困
  • 支持多次尝试输入密码

应用场景

1. 内部数据查询

  • 员工信息查询
  • 财务数据查询
  • 客户敏感信息查询
  • 需要限制访问范围的数据查询

2. 合作伙伴访问

  • 供应商数据查询
  • 客户数据共享
  • 第三方系统集成
  • 需要临时授权的数据访问

3. 临时授权访问

  • 临时项目数据查询
  • 审计数据访问
  • 紧急情况数据查询
  • 需要时间限制的数据访问

密码管理

密码设置建议

  1. 使用强密码:包含字母、数字、特殊字符
  2. 定期更换:建议定期更换访问密码
  3. 避免简单密码:避免使用容易猜测的密码
  4. 安全存储:不要将密码明文存储或分享

密码重置

如果需要重置密码:

  1. 进入查询设计器
  2. 打开查询模板的设置页面
  3. 修改"访问密码"字段
  4. 保存设置即可

注意事项

  1. 密码管理:建议使用强密码,定期更换
  2. 用户体验:密码保护会增加访问步骤,适合对安全性要求较高的场景
  3. 系统维护:密码字段的添加是向后兼容的,现有查询模板默认不启用密码保护
  4. 会话过期:用户会话过期后需要重新输入密码
  5. 密码遗忘:如果忘记密码,需要管理员在查询设计器中重置

常见问题

Q: 密码验证失败怎么办?

A: 检查密码是否正确输入,确认密码保护功能已启用,验证数据库字段是否正确添加。

Q: 密码输入框不显示怎么办?

A: 检查JavaScript是否正常加载,确认"启用密码访问"开关已勾选,查看浏览器控制台是否有错误信息。

Q: 设置保存失败怎么办?

A: 检查数据库连接是否正常,确认用户权限是否足够,查看错误日志获取详细信息。

Q: 可以设置多个密码吗?

A: 目前一个查询模板只能设置一个密码,如需多个密码,可以创建多个查询模板。

Q: 密码会过期吗?

A: 密码本身不会过期,但用户会话会过期,过期后需要重新输入密码。