파이썬에서 "계산기 API"를 쉽게 할 수있는 방법을 원합니다.Python : eval safe
지금 당장 계산기가 지원할 정확한 기능에 대해서는별로 신경 쓰지 않습니다.
"1+1"
문자열을 받고 결과가있는 문자열을 반환하려면이 경우 "2"
.
eval
그런 일에 안전한 방법이 있습니까?
처음에는 내가 (을 참조하거나) 그래서 발신자 내 지역 변수와 혼란하지 수
env = {}
env["locals"] = None
env["globals"] = None
env["__name__"] = None
env["__file__"] = None
env["__builtins__"] = None
eval(users_str, env)
할 것입니다.
하지만 여기에서 많은 것을 감독 할 것이라고 확신합니다.
eval
님의 보안 문제를 고칠 수 있습니까? 아니면 제대로 작동하려면 너무 많은 세부 정보가 있습니까?
참조 : http://stackoverflow.com/questions/594266/equest-parsing-in-python – kennytm
문제가 해결 될 수 있습니까? https://github.com/odoo/odoo/blob/d7cfa8c502f27bee5c2fccb35db47b08e3b3804b/odoo/ tools/safe_eval.py – bkmagnetron