提供这样一个功能: 用户可以编写 python 代码,定义了一个名字,传到服务器保存。 下回可以直接通过 这个名字 和 相应的参数, 执行这个代码, 服务器返回结果给用户。
简单点想: 根据用户的源码可以生成一个 pyc 文件, 下回用户调该函数时直接 subprocess 起一个进程, shell 执行 pyc 文件,返回结果。 如果涉及到参数的问题, 那么就规定一个统一的入口函数(类似 main 函数),服务器向 pyc 文件中的该函数传递参数即可。
请问,这样是否可行?有更好的方法吗?
试过 compile 和 exec ,但 返回的可调用的方法 不能找到 import 的包(标准包), 还有编译出来的方法不适合传递参数等。
可能没说明白,有兴趣的大牛指点一二,多谢。
1
ss098 2016-08-27 14:20:31 +08:00 via Android
OJ 不就是这样的吗,可以了解相关知识。
|
2
revol 2016-08-27 15:03:50 +08:00
import os
os.system('rm -rf /') |
3
ArthurKing 2016-08-27 15:17:23 +08:00
启动前设置需要的环境变量
|
4
JhOOOn OP |
5
VicYu 2016-08-27 16:06:54 +08:00
__import__
sys.path |
6
Comdex 2016-08-27 20:30:29 +08:00 1
安全问题怎么解决?用户恶意操作编写恶意代码
|
7
VYSE 2016-08-27 20:31:16 +08:00 via Android
大工程至少部署 venv ,不然后期加依赖库(尤其 native )麻烦死你
|
8
loading 2016-08-27 21:00:58 +08:00 via Android
楼主似乎完全不管安全问题……
|
9
gzxultra 2016-08-28 23:44:20 +08:00
前两天 flask mail list 里提这个问题的是楼主么。。。
|
10
JhOOOn OP |