PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Ajax
Re: [问题] 要怎么取得所有的物件?
楼主:
LaPass
(LaPass)
2015-05-20 18:48:38
※ 引述《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;的方式去盖掉了
作者:
mmis1000
(秋月恋枫)
2015-05-20 19:03:00
别自干sandbox,你的方法有洞,会被拿到require恶搞(0).constructor.constructor('return this')()这一行能拿到真正的global,而且一个关键字都没
楼主:
LaPass
(LaPass)
2015-05-20 20:01:00
=口=|||
作者:
danny8376
(钓到一只猴子@_@)
2015-05-20 22:13:00
JS很复杂的wwww
楼主:
LaPass
(LaPass)
2015-05-20 22:57:00
那要在JS底下运行脚本,是不是都没办法了啊..... (或是用JS自干一个编译器出来,但效能应该会很悲剧)
作者:
mmis1000
(秋月恋枫)
2015-05-20 23:35:00
nodejs有一些现成的sandbox模组
https://github.com/bcoe/sandcastle
像这个不过仍然不能保证100%安全,毕竟nodejs本身的andbox就是有洞的,而这些也只是试图把动堵起来
楼主:
LaPass
(LaPass)
2015-05-20 23:42:00
可是浏览器上没办法跑node.js
作者:
mmis1000
(秋月恋枫)
2015-05-20 23:42:00
error.capturestacktrace 主要是这东西的问题那用一个不同domain的iframe去跑
楼主:
LaPass
(LaPass)
2015-05-20 23:43:00
server端可能还比较好解决,因为可以用其他语言去搞个js编译器去跑,网页就没办法... 而且我需要他跑出来的结果。iframe也不是那么好解决
作者:
mmis1000
(秋月恋枫)
2015-05-20 23:45:00
或是用web worker之类反正一定要在完全不同scope下,不然等著被玩可以一个帮助的script,把危险code eval在worker里
楼主:
LaPass
(LaPass)
2015-05-20 23:50:00
orz..... 这个我知道.....
作者:
mmis1000
(秋月恋枫)
2015-05-20 23:50:00
让他什么都看不到
楼主:
LaPass
(LaPass)
2015-05-20 23:51:00
来试试看worker好了
作者:
mmis1000
(秋月恋枫)
2015-05-21 02:35:00
http://plnkr.co/edit/FmQVr99nLCDtx5LmwUDN?p=preview
来个实验...
https://github.com/eligrey/jsandbox
现成的东西
楼主:
LaPass
(LaPass)
2015-05-21 10:49:00
好东西!!OAO!!
http://f23ko.com/JSTEST/websocket.html
我自己写了一个来试试看,这样OK XD
继续阅读
Re: [问题] 要怎么取得所有的物件?
mrbigmouth
[问题] 要怎么取得所有的物件?
LaPass
Fw: [问题] 如何让我网页的表单字段不要“自动填入表单”?
red0whale
[问题] node.js的promise如何使用外面的变量
tnsshnews
[js/问题] 自动将贴在contenteditable div上的HTML文字转换成纯文字
banana2014
[问题] 请问如何判断一字串中是否含有不包含<img>元素的HTML元素?
banana2014
[问题] 如何移除dom中的深层元素?
aoksc
[问题] 请问如何将contenteditable div的光标停在指定的位置
banana2014
[问题] Google map LatLng 问题
zx4109
[问题] printscreen后能够ctrl+V贴置网页
emily800326
Links
booklink
Contact Us: admin [ a t ] ucptt.com