python odoo中safe_eval的用途

时间:2017-07-27 13:21:09

标签: python openerp

Python odoo中safe_eval的目的是什么?并使用safe_eval。我已经检查了几个自定义模块,它们具有安全的评估功能。

1 个答案:

答案 0 :(得分:6)

safe_eval:

  • 包含旨在提供更有限的替代方法以评估简单和/或不受信任代码的方法的模块。

  • 此模块中的方法通常用作eval()的替代方法,用于解析OpenERP域字符串,条件和表达式,主要基于locals condition / math builtins。

用法:

safe_eval(expression[, globals[, locals[, mode[, nocopy]]]]) -> result

系统限制的Python表达式评估

评估一个主要包含表达式的字符串 使用Python常量,算术表达式和 在上下文中直接提供的对象。

这可用于例如评估 来自不受信任来源的OpenERP域表达式。

  • throws TypeError:如果提供的表达式是代码对象
  • throws SyntaxError:如果提供的表达式无效,则为Python
  • throws NameError:如果提供的表达式访问了禁止名称
  • throws ValueError:如果提供的表达式使用forbidden bytecode