# 漏洞总结 ## 漏洞概述 该漏洞涉及 Stripe webhook AJAX 处理程序中的认证和 nonce 检查缺失。攻击者可能通过伪造请求绕过认证,执行未授权的操作。 ## 影响范围 - 影响 Stripe webhook 管理功能,包括创建、删除和重建操作。 - 影响范围限于使用 Stripe webhook 的 WordPress 插件。 ## 修复方案 1. **添加共享授权检查**:在 Stripe webhook AJAX 处理程序中添加共享授权检查。 2. **要求现有权限**:在执行创建、删除或重建操作前,要求现有的 PMPro 支付设置权限或管理选项。 3. **添加和发送 nonce**:为 Stripe webhook 管理 AJAX 请求添加和发送 nonce。 ### 修改文件 - `js/pmpro-admin.js`:发送 nonce 到 Stripe webhook 创建/删除/重建 AJAX 请求。 - `includes/scripts.php`:将 Stripe webhook nonce 本地化为 `pmpro` JS 对象,供管理页面使用。 - `classes/gateways/class.pmprogateway_stripe.php`:添加集中化的能力 + nonce 验证,并在 webhook AJAX 处理程序中强制执行。 ### 代码示例 ```javascript // js/pmpro-admin.js // 发送 nonce 到 Stripe webhook 创建/删除/重建 AJAX 请求 ``` ```php // includes/scripts.php // 将 Stripe webhook nonce 本地化为 `pmpro` JS 对象,供管理页面使用 ``` ```php // classes/gateways/class.pmprogateway_stripe.php // 添加集中化的能力 + nonce 验证,并在 webhook AJAX 处理程序中强制执行 ```