Re: [問題] 要怎麼取得所有的物件?

看板Ajax作者 (LaPass)時間10年前 (2015/05/20 18:48), 編輯推噓0(0029)
留言29則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《mrbigmouth (大嘴先生)》之銘言: : (function(global) { : var i; : for (i in global) { : console.log(i+":"); : console.dir(global[i]); : } : }(this)) 感謝 mrbigmouth 大大 這已經很接近我想要得結果了 我想作的是這種事情: (function(global) { var i; for (i in global) { eval("var "+i+"=null;"); } console.log("ERR HERE"); })((new Function("return this;"))()); console.log('OK HERE'); 用閉包的區域變數,蓋掉全域變數,製造一個「乾淨」的環境出來跑別人的CODE。 假設我不讓他用console,就把console = null; 這樣他就執行不到了。 只留下我想讓他跑的部份 但是,目前還有漏掉 像是 Function 、 Date 這種物件就沒蓋到 還有 node.js 的 require也還在 像這種東西我還在找方法列舉他 一旦能列舉,就能夠用 var Function = null;的方式去蓋掉了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.87.115 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1432118921.A.676.html

05/20 19:03, , 1F
別自幹sandbox,你的方法有洞,會被拿到require惡搞
05/20 19:03, 1F

05/20 19:50, , 2F
(0).constructor.constructor('return this')()
05/20 19:50, 2F

05/20 19:51, , 3F
這一行能拿到真正的global,而且一個關鍵字都沒
05/20 19:51, 3F

05/20 20:01, , 4F
=口=|||
05/20 20:01, 4F

05/20 22:13, , 5F
JS很複雜的wwww
05/20 22:13, 5F

05/20 22:57, , 6F
那要在JS底下運行腳本,是不是都沒辦法了啊..... (或是用
05/20 22:57, 6F

05/20 22:57, , 7F
JS自幹一個編譯器出來,但效能應該會很悲劇)
05/20 22:57, 7F

05/20 23:35, , 8F
nodejs有一些現成的sandbox模組
05/20 23:35, 8F

05/20 23:38, , 9F
05/20 23:38, 9F

05/20 23:41, , 10F
不過仍然不能保證100%安全,畢竟nodejs本身的andbox就是
05/20 23:41, 10F

05/20 23:41, , 11F
有洞的,而這些也只是試圖把動堵起來
05/20 23:41, 11F

05/20 23:42, , 12F
可是瀏覽器上沒辦法跑node.js
05/20 23:42, 12F

05/20 23:42, , 13F
error.capturestacktrace 主要是這東西的問題
05/20 23:42, 13F

05/20 23:43, , 14F
那用一個不同domain的iframe去跑
05/20 23:43, 14F

05/20 23:43, , 15F
server端可能還比較好解決,因為可以用其他語言去搞個js編
05/20 23:43, 15F

05/20 23:45, , 16F
譯器去跑,網頁就沒辦法... 而且我需要他跑出來的結果。
05/20 23:45, 16F

05/20 23:45, , 17F
iframe也不是那麼好解決
05/20 23:45, 17F

05/20 23:45, , 18F
或是用web worker之類
05/20 23:45, 18F

05/20 23:47, , 19F
反正一定要在完全不同scope下,不然等著被玩
05/20 23:47, 19F

05/20 23:50, , 20F
可以一個幫助的script,把危險code eval在worker裡
05/20 23:50, 20F

05/20 23:50, , 21F
orz..... 這個我知道.....
05/20 23:50, 21F

05/20 23:50, , 22F
讓他甚麼都看不到
05/20 23:50, 22F

05/20 23:51, , 23F
來試試看worker好了
05/20 23:51, 23F

05/21 02:35, , 25F
來個實驗...
05/21 02:35, 25F

05/21 03:59, , 26F
05/21 03:59, 26F

05/21 10:49, , 27F
好東西!!OAO!!
05/21 10:49, 27F

05/22 01:29, , 28F
05/22 01:29, 28F

05/22 01:29, , 29F
來試試看,這樣OK XD
05/22 01:29, 29F
文章代碼(AID): #1LN6Q9Ps (Ajax)
文章代碼(AID): #1LN6Q9Ps (Ajax)