Skip to content
标签
note
字数
233 字
阅读时间
1 分钟

实现思路

实现思路:

1)利用 iframe 创建沙箱,取出其中的原生浏览器全局对象作为沙箱的全局对象

2)设置一个黑名单,若访问黑名单中的变量,则直接报错,实现阻止\隔离的效果

3)在黑名单中添加 document 字段,来实现禁止开发者操作 DOM

4)在黑名单中添加 XMLHttpRequest、fetch、WebSocket 字段,实现禁用原生的方式调用接口

5)若访问当前全局对象中不存在的变量,则直接报错,实现禁用三方库调接口

6)最后还要拦截对 window 对象的访问,防止通过 window.document 来操作 DOM,避免沙箱逃逸

沙箱

with + proxy

iframe

参考

阿里面试官:请设计一个不能操作DOM和调接口的环境 - 掘金

贡献者

The avatar of contributor named as jiechen jiechen

页面历史

撰写