草庐IT

环境安全

全部标签

javascript - 将 OAuth token 传递给 JavaScript 客户端的安全方式

我目前正在设计一个以RESTAPI为中心的多平台应用程序(客户端将包括内部开发的移动应用程序,以及一个AJAX重型javascript客户端)。由于将来API可能会向第三方开放,因此我正在考虑使用OAuth2.0对API进行身份验证和授权。我正试图解决这种安排的一些安全问题,尤其是与javascript客户端有关的问题。我不希望这个客户端表现得像第三方客户端那样,有一大堆重定向和弹出窗口之类的东西,这是大多数OAuth文档似乎关注的重点。由于它将从我自己的域交付,我认为webapp的服务器端可以是实际的客户端,并存储客户端secret和刷新token,而javascript在需要时从服

javascript - 在仅 nodejs 环境中的 ES6 模块/类中定义 'real' 私有(private)方法,没有任何信息泄漏

我知道没有REAL私有(private)方法INSIDEES6类。然而,我玩了一会儿,发现了一些好东西——也许……正如我提到的,不公开对象的属性是不可能的。但是我试图实现一些OOP编程,因为我将我的类分成单独的文件,然后导出这些类,如:classMyClass{constructor(){/***Initializestuff...*/}myMethod(){/***Dopublicstuff...*/}}//exposeclasstoenvironment.exportdefaultMyClass;所以我可以导入类:从'./MyClass.js'导入MyClass;当然myMetho

javascript - 默认情况下,Vue 是否为 XSS 提供安全性或防止 XSS?

我在想办法保护自己,Angular视觉react对抗XSS攻击。当我访问Angular官方文档时,https://angular.io/guide/security,它说:TosystematicallyblockXSSbugs,Angulartreatsallvaluesasuntrustedbydefault.WhenavalueisinsertedintotheDOMfromatemplate,viaproperty,attribute,style,classbinding,orinterpolation,Angularsanitizesandescapesuntrustedva

javascript - 在 Javascript 中使用 addEventHandler 的安全、通用的方法?

在我进入这个问题的细节之前,我想把情况弄清楚。我们的网络分析公司作为大型网站的顾问,并且(除了添加单个SCRIPT标记外)我们无法控制页面本身。我们现有的脚本使用“旧”方式(element.onclick=blah的奇特版本;它也执行原始处理程序)安装处理程序,这完全不知道页面上的"new"(addEventListener或attachEvent)处理程序。我们想解决此问题,使我们的脚本能够在更多站点上运行,而无需进行太多自定义开发。这里最初的想法是让我们自己的脚本使用addEventListener/attachEvent,但这带来了一个问题:客户端的站点使用“旧”方式设置处理程序

javascript - 如何在整个 Web 应用程序堆栈中利用 Haskell 类型安全?

我想知道以CRUD为中心的Web应用程序可以从Haskell的类型系统中获益多少,尤其是当前端是使用JavascriptMVC框架(如AngularJS传递无类型数据对象)构建时。在我看来,一旦将Haskell数据类型转换为JSON对象,并将其传递给繁重的JavaScriptMVC框架层,将Haskell的类型系统作为Web堆栈的一部分的好处就会开始急剧下降,因为没有让类型检查器确保通过整个Web应用程序的数据流的类型完整性的方法。例如,您可以更改数据库模式和关联的Haskell类型,但类型检查器无法告诉您JavaScriptMVC前端的哪些部分也需要更新。我认为这是一个问题。我是否正

javascript - 如何在 Angularjs Protractor 中使用系统环境变量?

我的计划是将用户名和密码存储为系统环境变量,并在AngularjsProtractor配置文件中引用它们。我在/etc/environment中定义了变量。到目前为止,这是我尝试过的:params:{login:{user:$E2E_USER,pass:$E2E_PASS}}我也试过这个:params:{login:{user:process.env.E2E_USER,pass:process.env.E2E_PASS}}如有任何帮助,我们将不胜感激! 最佳答案 我使用了exportE2E_USER=username并且成功了。

javascript - 捕获内容安全策略 (CSP) 错误

我使用此方法通过eval检测CSP(也用于AngularJS):functionnoUnsafeEval(){try{newFunction('');returnfalse;}catch(err){returntrue;}}但我手头没有带有CSP的服务器来对其进行彻底测试。可靠吗?代码中存在newFunction('')行会导致无法捕获的错误吗?什么是err?那里捕获了哪种错误(Error、TypeError等)?CSP错误的消息是什么意思?我在CSP中找不到关于运行时错误的文档。 最佳答案 关于如何检测CSP,还有一个stacko

javascript - 我可以在生产环境中从 CDN 加载 Vue.js 吗?

我为一个新项目选择了Vue.js,因为它似乎可以在浏览器中本地运行,而不是像React这样必须通过Node编译/转译的东西。有什么理由不能在我的生产代码中像这样链接到CDN?一位同事建议这可能仅用于开发,而unpkg只是即时转译(这听起来对性能不利)。但除此之外它似乎工作正常。我还可以链接到更强大的CDN,例如thisone,但只是想确保我没有因为不使用Node构建系统(例如webpack)而违反某种最佳实践。 最佳答案 IsthereanyreasonIcouldn'tjustlinktoaCDNlikethisinmyprodu

javascript - 在分布式环境中拆分数组以找到两个子数组之和之间的最小差异

昨天有人问我这个问题。我必须编写代码将数组分成两部分,以使这两部分之和之间的差异最小。这是我写的代码,复杂度O(n)functionsolution(a){letleftSum=0;letrightSum=a.reduce((acc,value)=>acc+value,0);letmin=Math.abs(rightSum-leftSum);a.forEach((item,i)=>{leftSum+=a[i];rightSum-=a[i];consttempMin=Math.abs(rightSum-leftSum);if(tempMin但后来有人问我如果输入数组长度为1000万,我如

javascript - 使用 javascript 在正则表达式中使用语言环境字符

我想用一个例子更容易解释:'graciassenor'.match(/\w+/g)["gracias","senor"]但是如果我使用任何非英文字符:'graciasseñor'.match(/\w+/g)["gracias","se","or"]有什么方法可以考虑ñ、áé等字符。 最佳答案 根据Wikipedia,西类牙字母表包括:英文字母表:A-Z,a-zN带变音波浪号:ñ和Ñ重音字符:á、é、í、ó、ú,ü(及其对应的大写字符)因为有两种方法可以指定带变音符号的字符:单个字形:á带有组合标记:á("a\u0341")您至少需要