验证
NextPDF Enterprise 会针对指定原则执行进程内、只读的结构性检查——PDF/A-4、PAdES baseline、LTV health、ZUGFeRD、FDA 21 CFR Part 11、SEC 17a-4——并返回结构化报告。这份报告属于技术性的结构检查结果,并非法律意见、合规背书或认证。
composer require nextpdf/enterprise:^3概念总览
标题为“概念总览”的章节Compliance 是入口。Compliance::assess($pdfBytes, $policy)(或带有 run() 的可注入实例)会将单个 CompliancePolicy 应用到 PDF bytes,并返回一个 ComplianceReport。原则是工作单位,报告则是结构化结果。
Policies 是预置原则的工厂:pdfA4()、pdfA4e()、pdfA4f()、padesBaseline()、eidasQualified()、ltvHealth()、zugferd($profile)、fdaPart11(),以及 SEC 17a-4 家族(sec17a4()、sec17a4Compatible()、sec17a4Structural()、sec17a4PreSign())。每一个都会返回一个 CompliancePolicy,其 validate() 方法都是纯函数:输入 PDF bytes,输出 findings。该架构维持严格的只读边界——原则绝不会变更 PDF bytes,从而将验证与任何自动修正行为区分开来。
ComplianceReport 会按 Severity(Error、Warning、Info)对 findings 分组。当没有任何 error 时,passes() 为 true;warning 不会导致报告失败。报告内置一段法律免责声明(getDisclaimer()),声明该结果仅是供参考的技术性结构检查,最终判定应由具备资质的法律或合规专业人员作出。面向用户的输出必须显示该免责声明。
对于签名,还有另一条重要边界。LtvHealthCheck 会依据 ISO 32000-2:2020 §12.8.4.3 检查 Document Security Store(DSS)的结构性存在——它并不会以密码学方式验证嵌入的 OCSP/CRL 数据。eidasQualified() 仅在 PDF 层级验证 PAdES 结构;实际的 eIDAS 合格性取决于信任服务提供者与合格证书,而这些都不在本模块范围内。
这里的「验证」是什么意思
标题为“这里的「验证」是什么意思”的章节本模块会 检查结构性属性并报告 findings。它并不会认证文件,也不保证符合法规的充分性。
- 符合性是 最终文件加上验证器 的属性,并非本函数库的属性。ISO 19005-4:2020 §5.2 要求按照该标准的规范性要求,由检查工具判定符合性,而不是由生成文件的软件判定。
- 通过的报告,是对照每个原则所实现的规则得到的检查结果。它并不是认证。
- FDA 21 CFR Part 11 与 SEC 17a-4 原则会检查这些法规所隐含的 结构性属性(签名存在、签署意图、审计轨迹标记、WORM 限制)。它们并不会建立这些法规下的法律合规性。法律上的充分性应由你的合规团队判断。
支援某项标准并不等于符合该标准,而符合也不等于认证。 NextPDF 并未持有任何认证,也不会授予任何认证。
层级界线
标题为“层级界线”的章节- NextPDF Core
Compliance提供字节流验证器与语法交叉检查;零 finding 的结果是一份检查结果,而非认证。 - NextPDF Pro
Compliance(EInvoiceValidator) 会在电子发票层级于进程内验证 EN 16931 / Factur-X / ZUGFeRD。 - NextPDF Enterprise Validation(本页) 为归档、签名、LTV 与受监管行业的结构性检查(FDA Part 11、SEC 17a-4)新增预置原则,并提供统一报告。Enterprise Compliance 模块是一个独立接口,会委派给外部 sidecar;而本模块则在进程内执行。
API 接口
标题为“API 接口”的章节| 类别 | 职责 |
|---|---|
Compliance | 入口:应用一个原则,返回一份报告。 |
Policies | 预置 CompliancePolicy 实例的工厂。 |
CompliancePolicy | 契约:纯粹的 validate(),返回 findings。 |
ComplianceReport | 按严重性分组的 findings;并带有法律免责声明。 |
ComplianceFinding | 单个 finding:规则 id、消息、标准参考、修正建议。 |
Severity | Error / Warning / Info。 |
PdfAPolicy | PDF/A-4 家族的结构性原则。 |
PadesValidator | PAdES baseline / eIDAS 结构性原则。 |
LtvHealthCheck | DSS 结构性存在检查(ISO 32000-2 §12.8.4.3)。 |
ZugferdValidator | ZUGFeRD / Factur-X PDF 层级的原则。 |
FdaPart11Policy | FDA 21 CFR Part 11 结构性属性原则。 |
Sec17a4WormPolicy | SEC 17a-4 WORM 结构性原则(严格程度可选)。 |
代码示例——快速开始
标题为“代码示例——快速开始”的章节use NextPDF\Enterprise\Validation\Compliance;use NextPDF\Enterprise\Validation\Policies;
$report = Compliance::assess($pdfBytes, Policies::pdfA4());$ok = $report->passes(); // no errors代码示例——正式环境
标题为“代码示例——正式环境”的章节$report = (new Compliance($clock))->run($pdfBytes, Policies::fdaPart11());
foreach ($report->errors as $finding) { $logger->warning('validation.error', [ 'rule' => $finding->ruleId, 'standard' => $finding->standardReference, ]);}$auditLine = $report->getDisclaimer(); // surface this in user-facing output边界场景与陷阱
标题为“边界场景与陷阱”的章节- warning 绝不会让报告失败;只有 error 才会将
passes()设为 false。一份干净的报告,含义仍然是「已对照已实现的规则进行检查」,而非「合规」。 LtvHealthCheck确认的是 DSS 结构,而非密码学上的吊销有效性。eidasQualified()仅检查 PDF 层级的结构;合格性取决于 TSP 与证书。- SEC 17a-4 家族提供可选的严格程度(Full / Compatible / Structural / PreSign);请挑选符合你工作流程阶段的那一个。
每个原则都会在进程内针对所提供的 PDF bytes 执行;成本会随文件大小与规则数量而增加。Compliance 会在报告中记录执行时长。
安全备注
标题为“安全备注”的章节原则会在进程内解析 PDF bytes,且绝不会对外调用。请将来自不可信来源的 PDF bytes 视为具有敌意;纯只读架构意味着原则无法更改输入。
数据驻留与 PII 缓解措施
标题为“数据驻留与 PII 缓解措施”的章节验证在进程内于本机进行,没有任何网络 I/O。已签署的文件与审计轨迹元数据可能带有个人数据;请对报告与 findings 应用你自己的保留与最小化控制措施。
安全的遥测与日志清理
标题为“安全的遥测与日志清理”的章节Findings 包含规则 id、标准参考与消息——有些消息会回显从 PDF 提取出的签署者名称或原因字符串。在将日志转送到共用接收端之前,请先清理或遮蔽这些字段。
符合性
标题为“符合性”的章节| 行为 | 参考 | 状态 |
|---|---|---|
| 符合性是依该标准判定,而非依产生者判定 | ISO 19005-4:2020 §5.2 | 已反映在设计中(只读原则) |
| 用于 LTV 的 DSS 结构性存在 | ISO 32000-2:2020 §12.8.4.3 | 已检查(仅结构) |
| PAdES baseline 结构 | ETSI EN 319 142-1 §5.4.3 | 已检查(PDF 层级) |
| EN 16931 profile 语意模型 | Factur-X 1.08 (EN 16931) | 辅助参考(仍由发行者负责) |
| FDA 21 CFR Part 11 / SEC 17a-4 | 21 CFR Part 11 / 17 CFR 240.17a-4 | 已检查结构性属性;未经法律验证 |
这张表记录了每个原则检查的内容,以及其构建所依据的规范。它并不是关于认证或符合法规充分性的声明。FDA 与 SEC 行仅表示结构性属性检查;这些来源标准并不在验证语料库中,因此不带有任何 Verified 符合性声明。
FIPS 模式行为
标题为“FIPS 模式行为”的章节这些原则并不会执行密码学上的签署或验证。密码学上的签名有效性、密钥保管以及 FIPS 模式行为,由 Signature 与 Security 模块处理。
威胁模型
标题为“威胁模型”的章节主要输入是不可信的 PDF bytes。缓解措施包括:纯只读原则(不变更、不自动修正)、没有网络 I/O,以及每份报告都附带明确的法律免责声明,避免通过的结果被误认为认证。
商业场景
标题为“商业场景”的章节NextPDF Enterprise 新增了预置的归档、签名、LTV 与受监管行业原则,并提供统一报告。比较各版本。
版本限制
标题为“版本限制”的章节此功能在 NextPDF Enterprise 中提供。取得授权。
授权功能标志
标题为“授权功能标志”的章节此 enterprise 层级会限制此接口。请将 Enterprise 套件与 Core 套件一同安装;原则工厂与合规入口会在执行阶段通过 Core 契约解析,因此当你升级版本时,调用方代码无需更改。
行为约定
标题为“行为约定”的章节- 每个原则的
validate()都是纯函数——输入 PDF bytes,输出 findings——且绝不会变更输入;该架构维持严格的只读边界,与任何自动修正行为保持区分。 - 报告会依严重性将 findings 分组;当没有任何 error 时
passes()为 true,而 warning 绝不会让报告失败。 - 每份报告都带有一段内置的法律免责声明,声明该结果仅是供参考的技术性结构检查;面向用户的输出必须显示该免责声明。
- LTV health check 仅确认 DSS 的结构性存在;它并不会以密码学方式验证嵌入的 OCSP/CRL 数据。
- eIDAS 合格原则仅在 PDF 层级验证 PAdES 结构;实际的合格性取决于信任服务提供者与证书,而这些都在本模块的范围之外。
NDA 扫描状态
标题为“NDA 扫描状态”的章节这个公开页面仅描述对外可观察到的行为。除了已列出的公开支持类别名称外,它不含任何内部命名空间路径、不含内部 trait 名称、不含 runbook 文件名,也不含内部工单前缀。各原则的内部细节仍保留在受 NDA 规范的受限参考文件中。
Core 后备
标题为“Core 后备”的章节NextPDF Core Compliance 提供字节流验证器与语法交叉检查;零 finding 的结果是一份检查结果,而非认证。附带统一报告的预置归档、签名、LTV 与受监管行业原则,在 Core 层级没有对应功能。
Pro 后备
标题为“Pro 后备”的章节NextPDF Pro Compliance 会在电子发票层级于进程内验证 EN 16931 / Factur-X / ZUGFeRD。它并不提供预置的 PDF/A-4、PAdES、LTV、FDA Part 11 或 SEC 17a-4 结构性原则;这些仅随 nextpdf/enterprise 套件提供。Enterprise Compliance 的外部 sidecar 接口是一个独立模块。
Enterprise 边界说明
标题为“Enterprise 边界说明”的章节入口、原则工厂与报告均以行为层级描述。各原则的规则内部细节,以及任何内部分类细节,均不在公开接口范围内。密码学上的签名有效性在这里被刻意排除在范围之外——它由 签名验证 的验证端以及 Security 模块处理。
部署边界
标题为“部署边界”的章节验证在进程内于本机执行,没有任何网络 I/O;原则无法更改输入。运维人员会将来自不可信来源的 PDF bytes 视为具有敌意,在面向用户的输出中显示报告免责声明,并负责报告与 findings 的保留与最小化控制,而这些报告与 findings 可能带有来自已签署文件与审计轨迹元数据的个人数据。
法律合规边界
标题为“法律合规边界”的章节本页被标记为 export_control_class: legal-review-required;在设置 publish 标志之前,必须先取得法律批准。支持某项标准并不等于符合该标准,而符合也不等于认证——NextPDF 并未持有任何认证,也不会授予任何认证。FDA 21 CFR Part 11 与 SEC 17a-4 原则仅检查结构性属性,并不会建立法律合规。本文件并非法律意见;如需判断法律上的充分性,请咨询你的合规团队。
另请参阅
标题为“另请参阅”的章节- Compliance——外部验证器 sidecar(独立接口)。
- Evidence——封存、附时间戳的报告包。
- Core Compliance——进程内的字节流验证器。
- 签名验证——密码学上的 CMS / 时间戳 / 归档链验证端(与本结构性接口有所区别)。
- 规范:PDF/A-4——所参考的标准。
- Validation——深入参考(受限)。