我正在尝试设计一个小型引擎来为新手Python程序员运行黑客马拉松。人们完成编码后,他们将能够登录到烧瓶前端并上传代码。挑战在于如何执行该代码进行测试,并返回其正确与否。
搜索并阅读以下页面:
https://modwsgi.readthedocs.io/en/develop/user-guides/processes-and-threading.html
How can I make one python file run another?
What is an alternative to execfile in Python 3?
try:
code = compile(open("./hackathon_code.py").read(), "somefile.py", 'exec')
except:
print("your code failed")
问题:解决这个问题的相对更好的方法是什么?上面的代码容易有意或无意地进行“代码注入”。它甚至可能使使用mod_wsgi在HTTPD上运行的Apache崩溃。