草庐IT

全局安全配置

全部标签

javascript - 依赖注入(inject)与托管依赖与全局对象

我在Javascript+BackboneJS(一个MVC框架)+RequireJS框架中工作,但这个问题有点面向对象。首先让我解释一下,在Backbone中,您的View是传统View和Controller的混合体,而您的HTML模板是传统的MVCView我已经为此绞尽脑汁一段时间了,我不确定正确/务实的方法应该是什么。我有一个用户对象,其中包含许多代码所依赖的用户首选项(例如单位系统、语言选择等)。我的一些View在不使用模板的情况下完成大部分工作(通过使用第3方库,如映射和图形库),因此它们依赖于用户对象来处理单位转换,因为例子。我目前正在使用RequireJS来管理该依赖关系,

javascript - 如果变量是全局变量,为什么需要将参数传递给 javascript 中的自执行函数?

我正在查看underscore.jslibrary的代码(jQuery做同样的事情)并且只是想澄清为什么窗口对象被传递到自执行函数中。例如:(function(){//Line6varroot=this;//Line12//Bunchofcode}).call(this);//VeryBottom因为this是全局的,为什么要将它传递给函数?下面的方法不也可以吗?这样做会出现什么问题?(function(){varroot=this;//Bunchofcode}).call(); 最佳答案 我怀疑原因是ECMAScript5stri

javascript - 在 Firebase 位置更改时全局设置警报的最佳方式

我在我的应用程序中使用Firebase的其中一件事是存储用户提交的反馈-使用push()将child添加到某个位置。理想情况下,每当一个新的child被添加到该位置时,我都可以收到一封电子邮件,但这只能通过某些Firebase服务直接完成,或者可能通过某些可以点击URL的Firebase服务间接完成(包含一个通过电子邮件发送给我的小脚本),但我找不到任何关于这两种能力的提及。我能想到的一件事是像小型Node.js服务器一样不断运行并使用on('child_added',cb)收听该引用,并在发生变化时通过电子邮件通知我。我正在使用Firebase尝试在没有服务器的情况下构建此应用程序,

javascript - TinyMCE gulp 配置

我正在构建一个Web应用程序,我想使用TinyMCE。我正在使用gulp和browserify。我已经通过npm下载了TinyMCE并且我在我的app.js文件中需要它并运行gulp命令但是我得到了这个错误Failedtoload:root/js/themes/modern/主题.js。我认为这是因为TinyMCE需要其文件夹中的其他文件。我的问题是如何配置TinyMCE以在node_modules/tinymce文件夹中搜索这些文件。 最佳答案 这里的答案完全取决于您如何在Gulp构建中打包文件。我现在仍在解决同样的问题,但这里有

javascript - 为什么使用 '*' 作为 postMessage 的 targetOrigin 存在安全风险?

当对postMessage()方法的targetOrigin使用通配符时,我很难理解安全问题。您调用postMessage()的窗口是否已经有一个我们要将数据发送到的来源?怎么会有人能够干涉它?使用window.location.origin将targetOrigin设置为窗口的原点是否不好?我理解在接收端检查事件源的重要性(如图here所示),但我似乎无法理解为什么发送端使用通配符作为targetOrigin是不好的当窗口已经有一个特定的原点时。 最佳答案 这本身不是风险。这只是意味着任何人都可以将您的内容嵌入到框架中并阅读您通过

javascript - `this` 在全局上下文和内部函数中

根据thisexplanationinMDN:在全局上下文中,this指的是全局对象在函数上下文中,如果函数被直接调用,它又引用了全局对象然而,以下内容:varglobalThis=this;functiona(){console.log(typeofthis);console.log(typeofglobalThis);console.log('isthistheglobalobject?'+(globalThis===this));}a();...放在文件foo.js中产生:$nodejsfoo.jsobjectobjectisthistheglobalobject?false

javascript - 是否可以在 vue-router 中锁定除一条以外的所有路由?安全吗?或者我应该使用另一种方法?

我想做一个在线考试,这个考试有5页,有一个倒计时计时器(120秒),每页有4个问题。120秒后,用户将自动转到下一页,或者他们可以在此之前单击下一步按钮。Laravel5.4和VueJs,用户回答的每个问题都有一个Ajax请求。我想要的是阻止用户看到其他页面。每个页面最多只能显示120秒。用户不应该能够点击后退按钮并查看之前的页面。这可能吗?我想用Vuejs和vue-router创建这个应用程序,但我不知道如何用vue-router实现它,我做了一些研究,但没有得到太多结果!或者也许我不应该使用vue-router,而是使用我自己的简单路由器,例如:$("#page1").show()

javascript - 将 socket.io-client 与 webpack 一起使用时未定义全局

当我在我的React网络应用程序中添加socket.io-client插件时出现以下错误。UncaughtReferenceError:globalisnotdefinedatObject../node_modules/socket.io-parser/is-buffer.js(is-buffer.js:4)atwebpack_require(bootstrap:22)atObject../node_modules/socket.io-parser/binary.js(binary.js:8)atwebpack_require(bootstrap:22)atObject../node_

javascript - 将 sidebar_action 配置为仅对某些站点启用?

我想创建一个firefox扩展,允许边栏在用户导航到某些网页时自动显示。例如,假设我将其配置为如果用户导航到google.com,他们将看到一个侧边栏,让他们看到他们已经完成的一些“以前的搜索”。我不希望他们必须单击菜单操作/键盘快捷键才能显示它。我不想无限期地展示它。我一直在查看这些链接以了解如何使用边栏:https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebarshttps://developer.mozilla.org/en-US/docs/Mozill

javascript - Chrome 用户脚本是否与 Greasemonkey 脚本一样与全局命名空间分开?

我知道Greasemonkey脚本自动包装在匿名函数中以某种方式隔离,以防止它们与页面中的脚本冲突。Chrome用户脚本是否也会发生同样的情况? 最佳答案 是的,Greasemonkey脚本是normallywrappedinananonymousfunction.而且,Chromeuserscriptsapparentlyaretoo.但是,更重要的是,Greasemonkey脚本通常1包裹在XPCNativeWrapper中沙盒,而谷歌浏览器将用户脚本转换为扩展,theyoperateinanarenathatGooglecal