Odoo web controller 安全机制

  1. CSRF
  2. CORS
  3. Authentication

   

CSRF 跨站请求伪造

是指 攻击者通过伪造的网页, 让被攻击者访问, 然后用伪造的网页向 正常网页提交恶意数据

  • Odoo route 可以设置 csrf = true 来开启
  • Odoo 客户端已经实现了 csrf 验证, 一般在 表单上, 隐藏了一个 input

<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>

  • 在 客户端提交请求的时候, 在请求中, 加入参数 csrf_token
  • Odoo controller 收到请求的时候, 会使用 validate_csrf() 对 提交的 token 进行验证

   

备注, odoo 只要求对 HTTP 请求进行 CSRF保护, 而 JSON 请求, 则不需要使用此保护机制.

  • 如果是自己实现的应用, 需要遵循 csrf_token() 获取 token, validate_csrf() 验证 token的 机制.
  • Token 包含 2部分, 之间用 字母o 进行分隔, 前面部分是 签名. 第二部分是 有效期
  • 如果自己实现 REST api 最好关闭 csrf

   

CORS 跨源资源共享

通常所说的跨越访问保护, 它注明资源可以被访问的来源的范围, 用域名表示, 可以是 * 或者 abc.com

   

Odoo route 可以这是 cors=* 设置

   

Authentication

支持以下几种

  1. None 无限制
  2. Public 使用 public 用户标识 访客身份
  3. User 使用 会话中的 用户ID 标识用户身份, 并验证密码
  4. 其他, 比如Key 使用 token 识别用户

   

具体实现是 ir.http

jeffery 2024年4月23日
标签
存档
Odoo Mail