默认关闭 XML-RPC/JSON-RPC
QingERP 生产部署的安全基线是默认不向公网开放 Odoo 传统外部 RPC 入口:/xmlrpc、/xmlrpc/2 和 /jsonrpc。这项限制应由部署网关或反向代理执行;安装文档所述模块或切换业务系统设置,不等于已经关闭这些入口。上线时必须逐个实例核对实际部署配置。
先确认集成依赖
如果旧系统、迁移脚本或第三方插件仍调用这些路径,关闭后它们将无法继续通过传统 RPC 接入。先盘点调用方并完成迁移、专用网络限制或其他经批准的接入方案,再变更生产网关。
关闭范围
| 路径 | 处理原则 |
|---|---|
/xmlrpc、/xmlrpc/2 及其子路径 | 默认阻断公网访问 |
/jsonrpc 及其子路径 | 默认阻断公网访问 |
QingERP /api/v1 | 按当前实例的 API 契约单独鉴权与授权 |
/web/... 等后台路由 | 保留正常的登录与业务操作,不能按“所有 JSON-RPC”一概拦截 |
Odoo 官方已将上述传统外部 RPC 端点标记为弃用,但其他使用 type='jsonrpc' 的控制器不属于同一弃用范围。关闭传统入口是部署策略,不代表 Odoo 20 核心会自动关闭它们。参见 Odoo 官方外部 RPC 说明。
部署与验收
- 运维人员在反向代理或入口网关中针对上述精确路径前缀配置拒绝规则,并检查所有对外域名和代理层。不要用会覆盖
/web的宽泛规则。 - 重载网关配置前先运行配置检查,再从公网侧发起无业务副作用的请求,确认这几个传统路径返回网关拒绝结果(例如 403 或 404),而不是 Odoo 的 RPC 响应。
- 登录后台,打开单据并执行一次普通读取操作;同时验证当前实例的
/api/v1契约仍按预期工作。 - 记录部署环境、变更时间和验收结果。新实例、域名或代理变更后重复检查。
如果无法从实例配置或实测结果确认阻断已经生效,应把状态记录为待验证,不要把本文的基线描述当作实际部署证明。