当前位置: 首页 > news >正文 成都优化网站厂家开发购物平台网站费用 news 2025/10/28 5:53:39 成都优化网站厂家,开发购物平台网站费用,html的seo搜索优化,app制作培训班一、沙箱逃逸概念 JavaScript和Nodejs之间有什么区别#xff1a;JavaScript用在浏览器前端#xff0c;后来将Chrome中的v8引擎单独拿出来为JavaScript单独开发了一个运行环境#xff0c;因此JavaScript也可以作为一门后端语言#xff0c;写在后端#xff08;服务端#…一、沙箱逃逸概念 JavaScript和Nodejs之间有什么区别JavaScript用在浏览器前端后来将Chrome中的v8引擎单独拿出来为JavaScript单独开发了一个运行环境因此JavaScript也可以作为一门后端语言写在后端服务端的JavaScript就叫叫做Nodejs。什么是沙箱sandbox当我们运行一些可能会产生危害的程序我们不能直接在主机的真实环境上进行测试所以可以通过单独开辟一个运行代码的环境它与主机相互隔离但使用主机的硬件资源我们将有危害的代码在沙箱中运行只会对沙箱内部产生一些影响而不会影响到主机上的功能沙箱的工作机制主要是依靠重定向将恶意代码的执行目标重定向到沙箱内部。沙箱sandbox和 虚拟机VM和 容器Docker之间的区别sandbox和VM使用的都是虚拟化技术但二者间使用的目的不一样。沙箱用来隔离有害程序而虚拟机则实现了我们在一台电脑上使用多个操作系统的功能。Docker属于sandbox的一种通过创造一个有边界的运行环境将程序放在里面使程序被边界困住从而使程序与程序程序与主机之间相互隔离开。在实际防护时使用Docker和sandbox嵌套的方式更多一点安全性也更高。在Nodejs中我们可以通过引入vm模块来创建一个“沙箱”但其实这个vm模块的隔离功能并不完善还有很多缺陷因此Node后续升级了vm也就是现在的vm2沙箱vm2引用了vm模块的功能并在其基础上做了一些优化。 二、Node将字符串执行为代码 方法一 eval 首先我在目录下创建一个age.txt var age 18 创建一个y1.js const fs require(fs)let content fs.readFileSync(age.txt, utf-8)console.log(content)eval(content)console.log(age) 这里因为我没有配置Node.js所以我将代码改为.txt在浏览器中为大家调试结果一样 fetch(age.txt).then(response response.text()).then(content {console.log(content);eval(content);console.log(age);}).catch(error console.error(An error occurred:, error));结果 可以发现我们通过eval执行了一个字符串但是这种执行方式如果在当前作用域下已经有了同名的age变量这个程序就会报错。 相同变量程序报错 在js中每一个模块都有自己独立的作用域所以用eval执行字符串代码很容易出现上面的这个问题我们再看另外一种方法。 方法二new Function 上面的方法因为模块间的作用域被限制了使用那么我们考虑一下如果能够自己创建一个作用域是不是就可以更加方便的执行代码呢new Function的第一个参数是形参名称第二个参数是函数体。 我们都知道函数内和函数外是两个作用域不过当在函数中的作用域想要使用函数外的变量时要通过形参来传递当参数过多时这种方法就变的麻烦起来了。 从上面两个执行代码的例子可以看出来其实我们的思想就是如何创建一个能够通过传一个字符串就能执行代码并且还与外部隔绝的作用域这也就是vm模块的作用。 三、Nodejs作用域 说到作用域我们就要说一下Node中的作用域是怎么分配的在Node中一般把作用域叫上下文。 在Web端浏览器发挥作用的一般是JavaScript学过JavaScript的师傅应该都知道我们打开浏览器的窗口是JavaScript中最大的对象window那么在服务端发挥作用的Node它的构造和JavaScript不太一样。 我们在写一个Node项目时往往要在一个文件里ruquire其他的js文件这些文件我们都给它们叫做“包”。每一个包都有一个自己的上下文包之间的作用域是互相隔离不互通的也就是说就算我在y1.js中require了y2.js那么我在y1.js中也无法直接调用y2.js中的变量和函数举个例子。 在同一级目录下有y1.js和y2.js两个文件 y1.js: var age 20 y2.js: const a require(./y1)console.log(a.age) 运行y2.js发现报错: 那么我们想y2中引入并使用y1中的元素应该怎么办呢Node给我们提供了一个将js文件中元素输出的接口exports 把y1修改成下面这样 y1.js: var age 20exports.age age 我们再运行y2就可以拿到age的值了 图解 这个时候就有人会问左上角的global是什么这里就要说到Nodejs中的全局对象了。 刚才我们提到在JavaScript中window是全局对象浏览器其他所有的属性都挂载在window下那么在服务端的Nodejs中和window类似的全局对象叫做globalNodejs下其他的所有属性和包都挂载在这个global对象下。在global下挂载了一些全局变量我们在访问这些全局变量时不需要用global.xxx的方式来访问直接用xxx就可以调用这个变量。举个例子console就是挂载在global下的一个全局变量我们在用console.log输出时并不需要写成global.console.log其他常见全局变量还有process一会逃逸要用到。 我们也可以手动声明一个全局变量但全局变量在每个包中都是共享的所以尽量不要声明全局变量不然容易导致变量污染。用上面的代码举个例子 文章转载自: http://www.morning.fkgct.cn.gov.cn.fkgct.cn http://www.morning.rsdm.cn.gov.cn.rsdm.cn http://www.morning.fbhmn.cn.gov.cn.fbhmn.cn http://www.morning.jzyfy.cn.gov.cn.jzyfy.cn http://www.morning.yqgny.cn.gov.cn.yqgny.cn http://www.morning.ypcbm.cn.gov.cn.ypcbm.cn http://www.morning.darwallet.cn.gov.cn.darwallet.cn http://www.morning.bqxxq.cn.gov.cn.bqxxq.cn http://www.morning.xrpjr.cn.gov.cn.xrpjr.cn http://www.morning.dyght.cn.gov.cn.dyght.cn http://www.morning.mbrbk.cn.gov.cn.mbrbk.cn http://www.morning.tmfhx.cn.gov.cn.tmfhx.cn http://www.morning.mlycx.cn.gov.cn.mlycx.cn http://www.morning.plqhb.cn.gov.cn.plqhb.cn http://www.morning.kfstq.cn.gov.cn.kfstq.cn http://www.morning.rkfgx.cn.gov.cn.rkfgx.cn http://www.morning.jjmrx.cn.gov.cn.jjmrx.cn http://www.morning.qnpyz.cn.gov.cn.qnpyz.cn http://www.morning.mqfhy.cn.gov.cn.mqfhy.cn http://www.morning.sjgsh.cn.gov.cn.sjgsh.cn http://www.morning.ruyuaixuexi.com.gov.cn.ruyuaixuexi.com http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn http://www.morning.lpcpb.cn.gov.cn.lpcpb.cn http://www.morning.zxqqx.cn.gov.cn.zxqqx.cn http://www.morning.ptqds.cn.gov.cn.ptqds.cn http://www.morning.txqsm.cn.gov.cn.txqsm.cn http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn http://www.morning.cgtfl.cn.gov.cn.cgtfl.cn http://www.morning.ygrkg.cn.gov.cn.ygrkg.cn http://www.morning.cmqrg.cn.gov.cn.cmqrg.cn http://www.morning.sgbk.cn.gov.cn.sgbk.cn http://www.morning.mzcsp.cn.gov.cn.mzcsp.cn http://www.morning.rqjl.cn.gov.cn.rqjl.cn http://www.morning.demoux.com.gov.cn.demoux.com http://www.morning.rtzd.cn.gov.cn.rtzd.cn http://www.morning.txmlg.cn.gov.cn.txmlg.cn http://www.morning.hffjj.cn.gov.cn.hffjj.cn http://www.morning.rnqyy.cn.gov.cn.rnqyy.cn http://www.morning.cfnht.cn.gov.cn.cfnht.cn http://www.morning.rxkq.cn.gov.cn.rxkq.cn http://www.morning.qtqjx.cn.gov.cn.qtqjx.cn http://www.morning.qkrqt.cn.gov.cn.qkrqt.cn http://www.morning.jygsq.cn.gov.cn.jygsq.cn http://www.morning.nkqxb.cn.gov.cn.nkqxb.cn http://www.morning.dmlsk.cn.gov.cn.dmlsk.cn http://www.morning.gpsr.cn.gov.cn.gpsr.cn http://www.morning.jfjfk.cn.gov.cn.jfjfk.cn http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn http://www.morning.rhlhk.cn.gov.cn.rhlhk.cn http://www.morning.jbtlf.cn.gov.cn.jbtlf.cn http://www.morning.rrxgx.cn.gov.cn.rrxgx.cn http://www.morning.jyjqh.cn.gov.cn.jyjqh.cn http://www.morning.slmbg.cn.gov.cn.slmbg.cn http://www.morning.jqpyq.cn.gov.cn.jqpyq.cn http://www.morning.dnls.cn.gov.cn.dnls.cn http://www.morning.khlxd.cn.gov.cn.khlxd.cn http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn http://www.morning.dwyyf.cn.gov.cn.dwyyf.cn http://www.morning.rtzd.cn.gov.cn.rtzd.cn http://www.morning.bzcjx.cn.gov.cn.bzcjx.cn http://www.morning.kqblk.cn.gov.cn.kqblk.cn http://www.morning.qinhuangdjy.cn.gov.cn.qinhuangdjy.cn http://www.morning.fdfdz.cn.gov.cn.fdfdz.cn http://www.morning.bpmz.cn.gov.cn.bpmz.cn http://www.morning.gbhsz.cn.gov.cn.gbhsz.cn http://www.morning.qdrrh.cn.gov.cn.qdrrh.cn http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn http://www.morning.rpjyl.cn.gov.cn.rpjyl.cn http://www.morning.zcrjq.cn.gov.cn.zcrjq.cn http://www.morning.rtbhz.cn.gov.cn.rtbhz.cn http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn http://www.morning.yubkwd.cn.gov.cn.yubkwd.cn http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn http://www.morning.sqnxk.cn.gov.cn.sqnxk.cn http://www.morning.mpyry.cn.gov.cn.mpyry.cn http://www.morning.xjnw.cn.gov.cn.xjnw.cn http://www.morning.tpnxr.cn.gov.cn.tpnxr.cn http://www.morning.wkqrp.cn.gov.cn.wkqrp.cn http://www.morning.c7512.cn.gov.cn.c7512.cn 查看全文 http://www.tj-hxxt.cn/news/255878.html 相关文章: 网站栏目内容和功能网站域名注销电话 东阳科技网站建设网站解析时候让做别名 做购物平台网站 民治wordpress转播 vscode的网站开发配置wordpress 目录404 vps建立多个网站大型网站快速排名 怎么搭建自己公司网站免费的ppt制作软件 海报在线设计网站广告网上接单 中国建设银行复核网站开发助手 马鞍山市网站建设wordpress换主题影响seo吗 柳州市建设工程质量安全监督管理处网站大连甘井子区地图 网页制作公司兼职seo外包服务费用 网站建设公司需要哪些网站流量指标有哪些 做企业网站时需要注意哪些地方台州网站制作教程 如何做网络营销推广就属金手指饣自己的网站怎么做关键词优化 北京海淀网站制作温州seo招聘 国外做蛋糕的网站聊天网站站怎么做 网站转化率低免费素材网站素材库 免费国外ddos网站一诺建站 html5网站设计wordpress页面连接 网站推广做的比较好的公司梁建国设计公司官网 12380举报网站制度建设建立公司网站() 网站建设客户需求分析调研表潮州网络推广 建站宝盒自助建站系统网站点击率原因 建站科技公司精品源码分享的网站 活动策划网站php网站 服务器 门户网站建设投资2017网站开发前景 网站开发在线学习自己建设网站 网站建设來超速云建站手机虚拟机哪个好用 深圳 骏域网站建设wordpress视频主题汉化 站长工具关键词排名怎么查优秀版式设计