CodeQL 文档

Python 2 中使用的“input”函数

ID: py/use-of-input
Kind: problem
Security severity: 9.8
Severity: error
Precision: high
Tags:
   - security
   - correctness
   - security/cwe/cwe-94
   - security/cwe/cwe-95
Query suites:
   - python-code-scanning.qls
   - python-security-extended.qls
   - python-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

在 Python 2 中,对 input() 函数的调用,input(prompt) 等效于 eval(raw_input(prompt))。在没有任何检查的情况下评估用户输入可能是一个严重的安全漏洞。

建议

使用 raw_input(prompt) 获取用户输入,然后在评估之前验证该输入。如果预期输入是数字或字符串,则可以始终安全地使用 ast.literal_eval()

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私