dodo升级13
Postgresql 常用操作
dodo数据库升级步骤
dodo13全模块升级
Ubuntu挂载硬盘
dodo13 测试问题记录
自定义功能
注册系统服务
13新功能
13源码修改
z
重置 JetBrains 试用时间
runbot环境
odoo相关网站
dodo随手记录
odoo接口安全
dodo单点登录
单点登录说明
接口说明
单点登录时序图
odoo安全
odoo安全性政策
odoo安全披露政策
GPT
2023062901_dodo临时生成文件并下载
本文档使用 MrDoc 发布
-
+
首页
odoo接口安全
## 起因 dodo 提供的 jsonrcp 和 xmlrpc 服务过于开放: - 用户可以通过接口调用 model 中的所有非私有方法 - 未对接口本身提供权限校验机制 ## 解决方案1: - 将所有不希望用户直接调用的方法改为私有方法 - 在每个公开方法中判断用户的调用权限 举例:在odoo13的代码中 name_search 方法只做了一件事:调用 _name_search 方法。 两个方法唯一的区别就是 _name_search 方法多了一个 name_get_uid 参数,这个参数允许通过任意用户的权限执行查询,存在安全隐患。 ![](/media/202302/2023-02-21_104420_6762870.42183035750022724.png) ## 其他解决方案: [OCA/rest-framework](https://github.com/OCA/rest-framework/tree/13.0 "OCA/rest-framework/"):快速支持 REST 和 GraphQL 服务 [OCA/server-tools/rpc_helper](https://github.com/OCA/server-tools/tree/14.0/rpc_helper): 快速禁用model上的rpc调用 ```py from odoo.addons.rpc_helper.decorator import disable_rpc # 禁止通过RPC调用model下的所有方法 @disable_rpc() class AverageModel(models.Model): _inherit = "avg.model" # 禁止通过RPC调用model下的部分方法 @disable_rpc("create", "write", "any_method") class AverageModel(models.Model): _inherit = "avg.model" ```
幻翼
2023年2月21日 10:49
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码