免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1571 | 回复: 5
打印 上一主题 下一主题

[C++] 如何实现安全地执行用户上传的libx.so文件? [复制链接]

论坛徽章:
2
嗜杀者
日期:2015-11-25 10:44:3015-16赛季CBA联赛之北京
日期:2016-03-20 19:50:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-29 08:50 |只看该作者 |倒序浏览
我是C++新手(以前用C),以下地方如有不对、错误,敬请指正。

假设现有一套部署在Linux集群上的业务系统next,因为用户需求多种多样,next系统本身没法一一满足,所以我的想法(非原创)是,
允许用户把自己业务逻辑相关的代码编译成libx.so,通过next部署工具发布到集群上(next系统的路径下)。

但是我有几个个问题不知道怎么解决:
同一套next系统可能同时有多个用户。

1. 用户代码的bug,例如libx.so中的bug可能导致整个服务端core掉,如何防止?也就是说,执行用户libx.so中的代码,不能让整个进程宕掉,可以给用户返回错误。
想过的解决方案:另起一个进程执行libx.so,但进程间通信的代价很大(非常复杂)。
不知道各位是否有高招?

2. 解决方法要能够限制住libx.so对数据读写的权限(用户A的libx.so不能非法访问用户B的数据),
这块我想可以由next系统自身来做,不过得结合libx.so的实现方式来看。

谢谢。

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
2 [报告]
发表于 2015-07-29 08:55 |只看该作者
不想用多进程,那我看只有让用户用脚本语言写业务逻辑,解释执行

论坛徽章:
2
嗜杀者
日期:2015-11-25 10:44:3015-16赛季CBA联赛之北京
日期:2016-03-20 19:50:17
3 [报告]
发表于 2015-07-29 09:12 |只看该作者
本帖最后由 hitcser01 于 2015-07-29 09:13 编辑

回复 2# hellioncu

谢谢。
脚本执行产生的数据(数据量可能比较大)可能还需要在next系统中走一定流程,这个过程也需要仔细考虑,感觉这个问题有点蛋疼。

论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
4 [报告]
发表于 2015-07-29 10:53 |只看该作者
楼主需要的是沙盒类技术,直接执行.so肯定是不行的,主要是两个方向:
1. 嵌入脚本引擎,靠脚本引擎的vm做到隔离
2. 容器类技术
第一个是比较合适的,很多应用的例子,浏览器就是典型。第二个就是比较重型的解决方案了,我不是很了解。

论坛徽章:
6
酉鸡
日期:2013-11-04 15:30:02巳蛇
日期:2014-01-23 10:36:23双鱼座
日期:2014-01-23 13:08:332015亚冠之鹿岛鹿角
日期:2015-09-03 14:36:002015亚冠之武里南联
日期:2015-09-18 10:48:1315-16赛季CBA联赛之山西
日期:2016-05-05 00:05:33
5 [报告]
发表于 2015-07-29 10:56 |只看该作者
类似于Docker吧
https://www.docker.com/

论坛徽章:
2
嗜杀者
日期:2015-11-25 10:44:3015-16赛季CBA联赛之北京
日期:2016-03-20 19:50:17
6 [报告]
发表于 2015-07-29 12:44 |只看该作者
回复 4# zhaohongjian000
谢谢提供的思路!

回复 5# Dannysd
谢谢,我再查查相关资料。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP