像 http://zh.scala-tour.com/ 这样的网站,他们的代码直接在服务器上运行然后返还结果吗?还是在什么沙箱或虚拟机里运行。
如果在服务器上运行,是不是我在他的代码框里执行以下代码就可以把它的进程给杀了。。。
val rt:Runtime = Runtime.getRuntime();
val p:Process = rt.exec("kill n");
1
Livid MOD 那你就在框里尝试一下各种可能性就知道了。
|
2
oisc 2015-06-04 23:06:34 +08:00
楼主你做了什么。。。。。 网站进不去了。。。。
|
3
lujiajing1126 2015-06-04 23:07:47 +08:00
Application Error
An error occurred in the application and your page could not be served. Please try again in a few moments. If you are the application owner, check your logs for details. LZ你干了什么。。。 |
4
hellomsg OP 谁知道真这样
|
6
isaced 2015-06-04 23:11:11 +08:00
真的吗?
|
7
hellomsg OP |
9
zrp1994 2015-06-04 23:13:16 +08:00
楼主好样的
|
10
lujiajing1126 2015-06-04 23:14:53 +08:00
@hellomsg 查下域名是谁的。。然后写个Email。。。
|
12
x4 2015-06-04 23:15:25 +08:00 via Android
楼主怎么可以这样。。。。
|
13
ezreal 2015-06-04 23:15:37 +08:00
docker
|
15
mytharcher 2015-06-04 23:19:35 +08:00
是 heroku 上的,估计是没有捕获异常,然后 app 进程就挂了。
|
16
hellomsg OP 一失足成千古恨,怎么办,蹲监狱吗
|
17
razrlele 2015-06-04 23:27:34 +08:00 via Android
简直6
|
18
xiaozi 2015-06-04 23:30:42 +08:00
docker 做沙箱,http://tool.lu/coderunner/ 欢迎测试
|
19
vjnjc 2015-06-04 23:46:45 +08:00
现在能进了啊,我还贴了楼主的代码然而没有什么鸟用
|
21
molinxx 2015-06-04 23:53:07 +08:00 via iPhone
这类网站有不少,有问题的也不少,我记得有个T字母开头的,可以执行那个Fork炸弹,已经发邮件通知官方了,貌似仍未处理…
|
23
oott123 2015-06-05 00:19:10 +08:00 via Android
哈哈哈哈哈今日最佳
|
24
shawnxwang 2015-06-05 00:20:17 +08:00 via iPhone
楼主你太棒了…
|
25
wilsonxyz 2015-06-05 01:09:38 +08:00
|
26
Jafee 2015-06-05 01:21:16 +08:00 via Android
哈哈哈!
|
27
cnnblike 2015-06-05 01:21:19 +08:00
哈哈哈哈哈哈,楼主好萌啊
|
28
ligyxy 2015-06-05 01:22:35 +08:00
从第二楼开始就忍不住笑了
|
30
fuge 2015-06-05 06:09:26 +08:00 via iPhone
哈哈哈哈哈哈 笑尿了
|
31
virusdefender 2015-06-05 06:59:28 +08:00
@xiaozi 你是怎么加固的docker呢?最近在做oj的判题,发现docker默认的配置还是有安全风险的。
|
34
wy315700 2015-06-05 07:47:50 +08:00 1
@virusdefender oj的判题,ptrace禁止标准输入输出外的系统调用就没问题了吧,我们以前的OJ工作了好多年了。。。
|
35
gamexg 2015-06-05 08:02:00 +08:00
C,C++,D,Haskell,Lua,OCaml,PHP,Perl,Plain Text,Python,Ruby,Scheme,Tcl 在线执行
http://www.chenwang.net/2015/05/29/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7%E6%94%B6%E9%9B%86%EF%BC%9Ajs%E3%80%81html%E3%80%81c%E3%80%81c%E3%80%81php%E3%80%81python%E3%80%81sql%E3%80%81%E6%AD%A3%E5%88%99%E3%80%81ping%E3%80%81%E8%BF%9C/ |
36
hellomsg OP |
38
virusdefender 2015-06-05 08:26:38 +08:00
@wy315700 ptrace对性能影响有些大呢
|
39
wy315700 2015-06-05 08:35:07 +08:00
@virusdefender
不ptrace你怎么获取程序的 :“执行时间”,“使用内存”,怎么在程序超时的时候kill掉。 其实对性能影响不怎么样,因为真正在OJ里跑的,基本上系统调用很少,触发的也少。 当然,还有一些攻击,比如 "include攻击"需要额外注意一下。。。 |
40
virusdefender 2015-06-05 08:52:02 +08:00
|
41
wy315700 2015-06-05 08:57:36 +08:00
@virusdefender
会有问题的,机器负载大的时候,而且如果不进行实时监控,MLE和OLE会挤爆的。 ICPC现场一般都是PC2,也没什么安全防护,结果当初我们比赛的时候有个人提交了这么个代码: while(1) fork(); 然后,,,,, |
42
denghongcai 2015-06-05 09:15:30 +08:00
我勒个去……还真崩了……
docker沙箱只要不给sudo权限,不给root,不挂载外部文件系统还是安全的 主要是要限制docker的资源使用和CPU时间 |
43
cjyang1128 2015-06-05 10:27:59 +08:00
@cnnblike 惊现柯神
|
44
HowardMei 2015-06-05 10:49:49 +08:00
笑死了,哈哈,楼主经不起诱惑啊,名人一劝,就把节操给丢了
|
45
qqjt 2015-06-05 11:17:55 +08:00
……我服
|
46
zythum 2015-06-05 11:19:50 +08:00
今日最佳
|
47
qsz13 2015-06-05 11:21:55 +08:00
刚刚试了下rm...现在好像又不能访问了,我是不是该给作者写邮件道歉了
|
48
learnshare 2015-06-05 11:31:55 +08:00
Good Job !
|
49
shiniv 2015-06-05 11:35:09 +08:00
现在404了....
|
50
houfukude 2015-06-05 11:38:11 +08:00
噗 果然404了 你们这群坏人!
|
55
subpo 2015-06-05 11:46:35 +08:00
火钳刘明!
|
56
secondwtq 2015-06-05 11:53:19 +08:00
最近也在做这个东西...
说来我一个 ACM 渣,怎么就做起了 OJ 呢... |
57
YORYOR 2015-06-05 11:57:09 +08:00 1
你们玩大了 我就是那个站长!
|
61
Syaoran 2015-06-05 12:59:55 +08:00 via iPhone
这就404了,如果站长没备份怎么办……
|
62
hellov22ex 2015-06-05 13:00:57 +08:00
玩大了,已经404了
|
63
liujiantao 2015-06-05 13:09:13 +08:00 via Android
这也是得怪作者不加以限制,kill可以执行,rm都可以。。。
|
64
lazycat 2015-06-05 13:12:57 +08:00
卧槽这个有点厉害。。。笑死我了哈哈哈哈
|
65
momou 2015-06-05 13:26:14 +08:00
赔我午饭!!!
|
66
lrqrun 2015-06-05 13:27:34 +08:00
哈哈,作者要找你拼命了
|
67
chinabrowser 2015-06-05 13:32:02 +08:00 via Android
陪我早餐Σ(っ °Д °;)っ
|
68
qihboy 2015-06-05 13:37:31 +08:00
23333333333....
|
71
RIcter 2015-06-05 14:00:57 +08:00
|
73
duteng612 2015-06-05 15:17:46 +08:00
使用chroot(http://www.tutorialspoint.com/unix_system_calls/chroot.html),修改root dictionary;这一步骤可以保证你的服务器安全;然后再当前目录下配置运行环境(解释型和编译型的语言有些差异),不同语言也需要做一些不同的处理,之后使用ptrace跟踪运行程序;
|
74
KayYan 2015-06-05 15:52:31 +08:00
@hellomsg 我才是真正的作者。
当初做的时候,考虑这个问题。觉得坑很大,就决定不自己处理,让Heroku帮我搞。现在看样子Heroku也靠不住。挑个吉时上DaoCloud吧。 |
79
Mrxx 2015-06-05 17:58:25 +08:00
"框里尝试一下" 不能更清晰
|
80
asj 2015-06-05 18:25:48 +08:00
|
81
cdlnls 2015-06-05 18:47:45 +08:00
|
84
fwee 2015-06-05 19:15:20 +08:00 1
@KayYan 参与过他们内测 部署个应用后还拿了件衣服 (这里赞下Daocloud, 服务和T恤都很赞..),国内访问速度要比heroku好 强烈推荐
等作者上了Daocloud后去kill下试试..看能不能再骗件衣服.. |
86
daocloud 2015-06-05 20:51:34 +08:00
他是
曾经的软院大神 今日DaoCloud的主架构师 人称开叔的 @KayYan 多年前的Scala神作,在V2EX上被躺枪 Heroku靠不住,DoCloud玩不坏 开叔轻轻的敲下重大决策按钮 Docker Run,从此不再404 ~DaoCloud祝V2EX网友周末愉快~ |
87
sakeven 2015-06-05 21:28:49 +08:00 1
@virusdefender 我们使用ptrace做的,目前大部分oj的判题实现也是这个,禁止某些系统调用,限制堆栈、运行时间、内存等。可以看看我们的 <a href="https://github.com/ZJGSU-Open-Source/RunServer/tree/master/Cjudger"> ZJGSU </a>
|
88
est 2015-06-05 23:22:23 +08:00
@KayYan V2EX 第 120720 号会员,加入于 2015-06-05 13:46:27 +08:00,今日活跃度排名 1507
|
90
wy315700 2015-06-05 23:25:51 +08:00
@est 肯定是看到帖子注册的。。。
@sakeven 话说你们的代码和HUST的好像,,, 搭车也放一下我们Ecust的OJ系统 https://github.com/wy315700/ecustoj/tree/master/JudgeCore1 @virusdefender |
93
hellomsg OP |
95
flowfire 2015-06-06 00:27:23 +08:00
今日最佳2333333
|
96
gooffer 2015-06-06 11:32:42 +08:00
@virusdefender 什么风险-,-
|
98
comzyh 2015-06-06 11:42:21 +08:00 via Android
炸出一片做OJ的
|
99
nowcoder 2015-06-06 11:44:41 +08:00
神人太多,好担忧牛客网的OJ -,-
|
100
wizardforcel 2015-06-06 14:17:52 +08:00
|