草庐IT

安全模式

全部标签

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

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

javascript - 这是一个新的 javascript 工厂模式吗?

公平警告-很久以前我写了很多C++并且无法抑制将javascript强制转换为我当时熟悉的设计模式的诱惑。在任何回复中指责我返祖是可以的;-)在我现在的项目中,我想通过名称来创建对象,这表明工厂模式。因此,我阅读了“javascript工厂模式”的谷歌点击首页。他们都有这个丑陋的共同点:if(name==='FactoryPartA'){parentClass=PartA;}elseif(name==='FactoryPartB'){parentClass=PartB;}elseif...parentClass=PartZ;}returnnewparentClass();有两个问题:每

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

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

javascript - 如何在没有 jQuery 或 bootstrap.js javascript 的情况下打开 Bootstrap 模式?

我正在开发一个非常简单的调查应用程序。该应用程序在连接非常有限的第三世界国家/地区运行。我们发现加载时间与用户参与度成正比(对我们来说非常重要)。今天我使用了2个库——VueJS和一个自定义Bootstrap构建。我想调用一个模态。但是模式需要添加BootstrapJavascript和jQuery。这些库几乎使加载时间加倍。如何在不添加这两个库的情况下打开模式? 最佳答案 @uday链接到CSSonlymodal是一个很好的技巧,但如果您将#tag用于其他目的(例如,路由和参数传递),则使用起来可能会很尴尬。所以这是一个使用很少的

javascript - if with a continue 是一个很好的模式来防止在 Javascript 中迭代属性时过度嵌套吗?

我通常使用这种模式来迭代对象属性:for(varpropertyinobject){if(object.hasOwnProperty(property)){...}}我不喜欢这种过度的缩进,最近有人向我指出我可以通过这样做来摆脱它:for(varpropertyinobject){if(!object.hasOwnProperty(property)){continue;}...}我喜欢这个,因为它没有引入额外的缩进级别。这种模式可以吗,或者有更好的方法吗? 最佳答案 我个人比较喜欢:for(varpropertyinobject)

javascript - 如何让 VML 在标准模式下工作?

我希望能够在以标准模式而不是怪异模式呈现的页面上使用vml对象。我发现了散落在各处的答案片段,但无法弄清楚。Raphael以某种方式将它拉下来,但我无法扭转它以弄清楚发生了什么。任何基本的工作示例都会很棒。 最佳答案 我想我已经明白了。第1步是通过javascript导入vml命名空间。document.namespaces.add('v','urn:schemas-microsoft-com:vml',"#default#VML");这有一些随机的vml样本可以在quirks模式下工作,但不能在标准模式下工作。它们的关键是元素需要

javascript - 执行以下操作是否 100% 安全?

执行以下操作是否100%安全?varuntrusted_input_from_3rd_party='alert("xss")';document.getElementsByTagName('body')[0].appendChild(document.createTextNode(untrusted_input_from_3rd_party));考虑到第三方可以输入任何东西(HTML、CSS等),如果我通过createTextNode传递然后添加到主场? 最佳答案 这是防止XSS的好方法。通过createTextNode进行的DOM

javascript - three.js继承模式

我想知道为什么three.js的代码结构是这样的:THREE.Camera=function(){THREE.Object3D.call(this);//addmoreCameraspecificpropertiesandmethods}THREE.Camera.prototype=newTHREE.Object3D();THREE.Camera.prototype.constructor=THREE.Camera;THREE.Camera.prototype.//addmorecameraspecificmethods...我想知道为什么他们在当前构造函数中调用基础构造函数并且还为原

javascript - 为什么这段 JavaScript 代码(RequireJS 和 Node.js 的模块模式)有效?

由于我对RequireJS和Node.js(以及一般的JavaScript)的了解有限,我通常会查看一些著名的JavaScript库的源代码。每次我看到这样的东西:(//Wrappingfunction(root,factory){if(typeofexports==='object'){//Node.jsvarunderscore=require('underscore');varbackbone=require('backbone');module.exports=factory(underscore,backbone);}elseif(typeofdefine==='functi

javascript - javascript eval 真的有那么大的安全威胁吗?

这个问题在这里已经有了答案:WhyisusingtheJavaScriptevalfunctionabadidea?(25个答案)关闭9年前。假设没有可用于修改某人计算机的浏览器端安全漏洞,我不明白使用eval会如何导致任何真正的威胁。谁能解释一下这是怎么可能的。有人可以在用户的​​计算机上显示某些内容,但如果不进行重定向或接受下载,就不会造成真正的伤害。不会造成服务器端损坏,对吧?