用途:对 Vue 3 + Pinia + IndexedDB + PouchDB 应用做全面数据安全审计,识别数据丢失风险、同步问题、竞态条件,并给出修复指引。理念为零容忍数据丢失、覆盖存储/同步/水合/完整性/测试、基于证据(代码位置、模式、严重级别)、提供可执行修复与缺失安全测试生成。
主要能力与检测项: 严重(部署阻断):QUOTA_EXCEEDED 存储已满、SAFARI_ITP_EXPIRATION Safari 7 天数据丢失、UNHANDLED_QUOTA_ERROR 未捕获配额错误、NO_CONFLICT_RESOLUTION 未处理 PouchDB 冲突、NON_ATOMIC_UPDATES 多条目更新可部分失败。 高:HYDRATION_RACE_CONDITION、NO_SYNC_ERROR_HANDLING、INCOMPLETE_SYNC_UNDETECTED、RACE_CONDITION_SAME_KEY、UNHANDLED_STORAGE_ERROR。 中:NO_CHECKSUM_VERIFICATION、NO_PRIVATE_MODE_HANDLING、NO_PERSISTENT_STORAGE_REQUEST、STORAGE_PARTITIONING_UNACCOUNTED、DRIVER_VALIDATION_MISSING。 低:NO_PERSISTENCE_TESTS、NO_OFFLINE_TESTS、MISSING_SAFARI_TESTS。 检测分类:浏览器特有数据丢失向量(配额与驱逐、Safari ITP、隐私模式、存储分区);存储模式(LocalForage 竞态、并发写冲突、驱动回退、配置问题);同步模式(PouchDB/CouchDB 冲突、网络失败、不完整同步、完整性验证);Vue/Pinia 风险(水合竞态、beforeRestore/afterRestore、对象引用破坏、多持久化源);数据完整性(加载 schema 校验、校验和、损坏检测、备份恢复);测试与合规(持久化测试覆盖、配额失败测试、OWASP、GDPR)。
使用方式:创建 const auditor = new DataSafetyAuditor();,可执行 auditor.auditVueApp('./src') 全项目审计、checkQuotaRisks、checkSafariCompat、checkPiniaPersistence、checkSyncIntegrity 等定向审计,以及 generateTestSuite 生成测试、suggestRemediations 获取修复建议。报告支持 Console、JSON、Markdown、HTML 格式。部署门禁:CRITICAL 阻断部署,HIGH 警告建议修复,MEDIUM/LOW 仅提示。可集成 CI/CD(report.hasBlockers() 时退出)并支持 auditor.rules.addRule 自定义规则。
适用场景:生产部署前、新增持久化功能后、调试数据丢失、存储代码评审、搭建 CI/CD 质量门禁、审计第三方存储库。
限制:资料未提供安装命令、收费与平台要求;同时要求任何“已修复/安全”声明前必须先用 AskUserQuestion 获取用户确认,不得在用户确认前声称数据安全或批准部署。