水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
1/1
|
转到
主题:请问如何执行存储的代码字符串
楼主
|
blackhill
|
2021-02-08 08:38:44
|
只看此ID
用户提交一个函数,然后保存在sql的字段里,用的时候需要后端调用这个字段里的字符串当做函数进行执行,如果用python来实现这个功能,怎样做最优雅且安全。
eval?
※ 修改:·blackhill 于 Feb 8 08:39:51 2021 修改本文·[FROM: 101.84.34.*]
※ 来源:·
https://exp.newsmth.net
·[FROM: 101.84.34.*]
修改:blackhill FROM 101.84.34.*
FROM 101.84.34.*
1楼
|
z16166
|
2021-02-08 08:42:40
|
只看此ID
允许自定义代码,本身就是风险,需要沙盒进行限制才行,类似浏览器中执行JS之类的。
这个字符串是什么语言写的代码?如果这串是python写的代码,python可以访问os的文件系统什么的,不安全。
你得自己实现一个python的runtime沙盒,这个沙盒不提供native的文件访问,或者重定向到一个虚拟的文件系统。
而且远不止这一个地方需要沙盒化,工作量巨大而且容易漏。
--
修改:z16166 FROM 125.35.123.*
FROM 125.35.123.*
2楼
|
blackhill
|
2021-02-08 11:27:48
|
只看此ID
多谢提供思路
【 在 z16166 的大作中提到: 】
: 允许自定义代码,本身就是风险,需要沙盒进行限制才行,类似浏览器中执行JS之类的。这个字符串是什么语言写的代码?如果这串是 ...
--
FROM 180.167.122.*
3楼
|
blackhill
|
2021-02-09 07:51:11
|
只看此ID
我突然想到只用python里的lambda,把换行符去掉,空格tab去掉,这样是不是就没有风险了。
换句话说这也是python独特的优势?
【 在 z16166 的大作中提到: 】
: 允许自定义代码,本身就是风险,需要沙盒进行限制才行,类似浏览器中执行JS之类的。这个字符串是什么语言写的代码?如果这串是 ...
--
FROM 49.7.6.*
4楼
|
bihai
|
2021-02-09 11:12:48
|
只看此ID
docker?
【 在 z16166 的大作中提到: 】
: 允许自定义代码,本身就是风险,需要沙盒进行限制才行,类似浏览器中执行JS之类的。
: 这个字符串是什么语言写的代码?如果这串是python写的代码,python可以访问os的文件系统什么的,不安全。
: 你得自己实现一个python的runtime沙盒,这个沙盒不提供native的文件访问,或者重定向到一个虚拟的文件系统。
: ...................
--
FROM 73.158.253.*
5楼
|
zli07
|
2021-02-09 14:45:56
|
只看此ID
python是反射最不安全的脚本语言了,js至少还有闭包,单上下文什么的
python甚至能从函数获取模块,进而获取模块全局变量
【 在 blackhill 的大作中提到: 】
: 我突然想到只用python里的lambda,把换行符去掉,空格tab去掉,这样是不是就没有风险了。
: 换句话说这也是python独特的优势?
--
FROM 123.58.117.*
6楼
|
xiaoju
|
2021-02-09 14:51:42
|
只看此ID
允许用户执行任何图灵完全的代码段都不安全,因为安全性是不可证明问题。
实在要搞开个沙盒吧
【 在 blackhill 的大作中提到: 】
: 用户提交一个函数,然后保存在sql的字段里,用的时候需要后端调用这个字段里的字符串当做函数进行执行,如果用python来实现这个功能,怎样做最优雅且安全。
eval?
--
FROM 27.91.71.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版