[問題] java.security的使用方式

作者: LaPass (LaPass)   2015-05-18 23:34:38
我想做到
讓使用者可以自寫程式(JAVA)
然後上傳到SERVER上
再讓我的SERVER去執行他傳來的程式
我再去取得結果
我現在在想的是
在JAVA中要如何鎖掉一些package的功能
例如當他的程式去呼叫 File 、 Socket或是Thread就跳錯
我找到一個可能的方向
java.security 底下的東西應該就是我要找的
但是我找不到範例
請問這種功能有範例可以看嗎?
作者: mozzan (mozzan)   2015-05-18 23:49:00
leetcode
作者: qrtt1 (有些事,有時候。。。)   2015-05-19 00:25:00
作者: pttworld (批踢踢世界)   2015-05-19 01:10:00
該不會要做judge server吧
作者: Killercat (殺人貓™)   2015-05-19 02:26:00
這不難阿,你抽掉本機端的rt.jar裡面你不要的東西換成同樣函數,會丟exception就好...不過有些能抽,有些是不能抽的,要一個個試試看只要你跑的VM rt.jar裡面被「加料」過,這就可以達到你要的效果了,而且在對方local端不會感到異狀 :D誒,不過看了一下security應該簡單點我想...
作者: LaPass (LaPass)   2015-05-19 08:34:00
感謝,我來研究一下耶,要用新的JVM起來喔? 這樣有點麻煩,因為我需要他們的程式執行出來的結果...>
作者: Frozenmouse (*冰之鼠*)   2015-05-19 12:11:00
起新的VM來跑也可以拿結果啊@@
作者: Killercat (殺人貓™)   2015-05-19 13:23:00
可以動態抽換rt.jar 這個是沒問題的最大的問題是,有些能抽掉有些不能,要試試看不能抽掉的主要都是因為會被其他「必跑」的class參考
作者: LaPass (LaPass)   2015-05-19 15:18:00
抽換掉Thread的classloader不知道有沒有用....
作者: Killercat (殺人貓™)   2015-05-19 16:44:00
要從classloader下手的話 不用抽掉 動態換掉即可看看Thread.currentThread.setContextClassLoader(...)這個是不是你要的。繼承classloader在魔改一下就好...誒,仔細看了一下,你應該想用的方法跟我說的是一樣的

Links booklink

Contact Us: admin [ a t ] ucptt.com