python3-使用断言的错误做法?

时间:2018-10-11 17:24:10

标签: python python-3.x security

我有一个python3脚本,该脚本使用简单的assert语句来比较两个变量的值。

assert response['checksum'] == checksum

一个名为bandit的代码分析工具将其标记为不良做法,受到的保护较少。 https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html

使用断言确实是不正确的做法,并且安全性较低吗?

1 个答案:

答案 0 :(得分:1)

您在链接中自己给出了答案:

  

发现某些项目使用assert来实施接口约束。但是,通过编译为优化的字节码(python -o生成* .pyo文件)可以删除assert。

因此,如果一个库依靠assert来执行某种验证,而我又将它与py2exe或类似的工具一起使用,那么产生的代码很有可能会丢失断言< strong>和失败或跳过上述验证。这就是为什么您只应在测试代码等中使用assert