草庐IT

安全局

全部标签

javascript - javascript "fake privacy"是否存在安全风险?

Javascript不允许您像在C++中那样为对象提供私有(private)数据或方法。哦,实际上,是的,通过一些涉及关闭的解决方法。但是来自Python背景,我倾向于认为“假装隐私”(通过命名约定和文档)已经足够好,或者甚至比“强制隐私”(由Javascript本身强制执行)更可取。当然,我可以想到这不是真的情况——例如人们在没有RTFM的情况下与我的代码进行交互,但我受到指责——但我没有遇到那种情况。但是,有件事让我犹豫了。Javascript大师DouglasCrockford在“Javascript:TheGoodParts”和其他地方反复将虚假隐私称为“安全”问题。Forex

javascript - Browserify 从全局范围的 require 加载依赖项,而不是期望它们被捆绑在一起

我正在开发库A和库B,B依赖于A。我想使用browserify将它们独立捆绑起来,所以在我的浏览器中我可以这样做:varA=require("A");varB=require("B");我想将它们独立捆绑起来,因为我还在开发仅依赖于A的库C,如果A包含在B中,那么C将无法访问它,如果A在B和C中,我有重复项。所以我从浏览器化库A开始:browserify-r./src/A.js:A-obuild/A.js它工作得很好,我可以分发A,其他人可以用它开发他们的应用程序。然后我浏览库B:browserify-r./src/B.js:B-obuild/B.js但我现在有两次A,A在浏览器中独立

javascript - 包含第 3 方 iFrame 的安全风险

包含隐藏的第3方iFrame的应用程序安全风险是什么?如果我没理解错的话...点击劫持对我来说不是问题,因为我拥有父页面同源策略阻止3p框架与我的dom/cookies/js交互框架是隐藏的,所以我不必担心框架中可能显示的任何内容但是我在Chrome控制台做了一些实验并且...3pframe可以调用alert/prompt之类的东西3p框架可以通过location.href重定向父节点3p框架内的恶意软件(java/flash/activeX)可能会感染我的用户我很想看到可能出现的问题和任何缓解措施的列表,但我找不到好的信息来源。那么...包含隐藏的第3方iFrame的应用程序安全风险

javascript - 我是如何丢失 JavaScript 内置对象和所有全局变量的?

我正在处理一个需要在大型浏览器(包括IE11)中运行的Umbraco站点,我遇到了一个只能在IE11上复制的奇怪问题。在某些时候,TinyMCE插件的脚本会尝试执行此代码(大约调用四次)以响应blur事件:functionclassTest(cls){returnnewRegExp("(^|\\s)"+cls+"(?:$|\\s)\\s*");}并且在尝试创建RegExp对象时抛出“对象不支持此操作”异常。cls已定义并且具有我期望的值。在未处理的异常上暂停(使用VisualStudio调试器)时,我做了一些检查。原来RegExp是undefined。我发现这非常很奇怪。更多的调查显示

javascript - 在 ES Lint 中为 React Native 应用程序将 WebSocket 定义为全局变量

我收到以下eslint错误:42:21error'WebSocket'isnotdefinedno-undef您不能从react-native导入WebSocket,因为它是全局的,但是当我将WebSocket作为全局变量添加到我的.eslintrc.yml时,它不会改变结果错误:globals:WebSocket:true如何在ESLint中为ReactNative应用将WebSocket定义为全局?这可以修复吗?目前我的.eslintrc看起来像这样:env:browser:falsees6:truecommonjs:truenode:trueextends:'airbnb'par

javascript - 如何在不弄乱全局命名空间的情况下在其他站点中注入(inject) Javascript(包括 Prototype.js)?

我目前正在做一个项目,该项目是一个使用Prototype库的大型站点,并且已经有大量的Javascript代码。我们现在正在研究一段代码,它将被“注入(inject)”到其他人的网站中(想象人们在他们的网站中添加标签),然后运行我们的代码并添加一堆DOM元素和他们网站的功能。这将有新的代码片段,并且还将重用我们在主站点上使用的大量代码。我遇到的问题是,仅仅添加一个将在人们的页面中包含Prototype的当然不是很酷。如果我们在已经使用任何框架的页面中这样做,我们肯定会搞砸一切。jQuery为我们提供了“重命名”$对象的选项,因此它可以很好地处理这种情况,但显然我们没有使用jQuery,

javascript - 局部变量的访问时间比全局变量长 7 倍?

我试图对“缓存”math.floor的增益/损失进行基准测试,希望我可以更快地进行调用。这是测试:window.onload=function(){varstartTime=newDate().getTime();vark=0;for(vari=0;iMath.floor:msvarmathfloor:mswindow.mathfloor:ms我的测试结果:[Chromium5.0.308.0]:Math.floor:49msvarmathfloor:271mswindow.mathfloor:40ms[IE8.0.6001.18702]Math.floor:703msvarmathf

javascript - 区分局部评估和全局评估

请考虑两段代码(第一段打印“Localeval”,第二段打印“Globaleval”):(functionf(){varx;try{eval("x");console.log('Localeval');}catch(e){console.log('Globaleval');}}())和varglobalEval=eval;(functionf(){varx;try{globalEval("x");console.log('Localeval');}catch(e){console.log('Globaleval');}}())事实证明,即使globalEval===eval的计算结果为

javascript - 我可以在浏览器 ui 线程和 web 工作线程中安全地使用 html5 中的哪些本地存储

我一直在尝试在基于webkit的浏览器中使用websqldatabaseapi。我一直在主ui线程和webworker中使用asyncapi。两个线程都访问同一个数据库(如您所知,它是底层的sqlite)一切正常,但有时交易会丢失或一个交易失败,这似乎是一个计时/竞争条件。看来对底层sqlite数据库的访问不是线程安全的。更多的背景。我的webworker只是对一个表执行查询,该表可能从主ui线程插入了一条记录。我想知道它是否真的在某个地方记录了什么本地/网络存储可以从用户界面线程和网络工作线程安全地访问?我在某处读到indexeddbapi是线程安全的,但这对我现在没有帮助,因为浏览

javascript - 用于 javascript 对象的安全属性引用的库函数

考虑以下代码:functionfoo(handlers){callSomeFunction(handlers.onSuccess,handlers.onFailure);}调用者可以:foo({onSuccess:doSomething,onFailure:doSomethingElse});或者只是foo()如果他/她没有什么特别的事情要做。上述代码的问题在于,如果未定义“处理程序”,就像上面简单的foo()调用一样,那么在执行callSomeFunction(handlers.onSuccess,handlers.onFailure)期间将抛出运行时异常).为了处理这种情况,可以将