草庐IT

PWN保护机制

全部标签

javascript - SPA 中刷新 token Cookie 的 CSRF 保护

我在AngularJSSPA中使用资源所有者密码凭证OAuth2.0流程。有几篇文章(here,here..)和thisquestion的答案。这解释了我们不应该在(网络)客户端(LocalStorage)上存储刷新token,而是将它们加密存储在HttpOnlyCookie中并使用代理API,我们在其中实现刷新token的解密以将其转发到安全token服务。大多数文章都暗示我们应该通过使用一种常见的保护机制来关注CSRF。我想知道单页应用程序中的最佳解决方案是什么。Angular$http引用解释了我们应该如何应对CSRF的默认机制:服务器必须设置一个名为XSRF-TOKEN的coo

javascript - Angular 2+ 安全性;保护服务器上的延迟加载模块

我有一个Angular2+应用程序,用户可以在其中输入个人数据。此数据在应用程序的另一部分进行分析,该部分仅对具有特定权限的人可用。问题是我们不希望未经授权的人知道我们如何分析这些数据。因此,如果他们能够在应用程序中查看模板,那就太糟糕了。由于它是客户端应用程序,精明的用户总是可以调整应用程序并查看模板。使用路由保护、延迟加载和CanLoad不会在这里保护我们,因为所有模块都可以通过简单的HTTP请求获得,并且资源的url可以被足够精明的用户找到。我了解处理此问题的常用方法是使用单独的应用程序。在这种情况下,将有三个,一个用于登录/注册,一个用于用户输入数据,一个用于具有特定权限的人分

javascript - 保护用于 Javascript 小部件的 API

我正在编写一个将由博主/网站所有者安装的javascript插件。它将与我的远程API通信。我想知道如何保护API以确保只有已注册服务帐户的用户拥有的域才能从API访问资源。我已经阅读了OAuth2并了解了基础知识,但是由于该插件将在浏览器内运行,而不是在服务器之间运行,所以我不确定它的安全性。mixpanel、googleanalytics、olark等大量服务使用相同的概念(即网站所有者在他们的网站上安装一行JS),所以它一定是一个已解决的问题。 最佳答案 您可以将window.location检查插入到您的脚本中,以防止其他人

javascript - 我们如何保护第三方小部件?

我正在构建第3方小部件我们在客户端页面上放置一个脚本并加载一些内容。我面临的问题是如何保护我的小部件。作为第三方小部件,我知道没有100%的方法来保护它。而是试图找出一种“足够好”的方法。我想让非客户难以将我们的脚本从他们的竞争对手网站上撕下来并在他们的网站上使用。我看到的解决方案是pullvalidaterequestingdomain(我知道这可能被欺骗,不确定我是否可以防止这种情况?)我看过其他小部件,如olark和olapic,它们在脚本中使用每个客户端的唯一ID,但看不出这有多大帮助。保护第三方小部件的最佳做法是什么? 最佳答案

javascript - JScrambler 服务可以安全地保护 javascript 吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion所以我最近偶然发现了jscrambler.com这个工具实际上可以让你保护你的javascript代码,它很吸引人。但是,该服务是基于云的,我想知道这是否真的可以。因为我实际上是在他们的服务器上发布代码。虽然其他人无法窃取我的代码,但仍然可以从jscrambler背后的人那里窃取。也许是我多虑了。使用jscrambler服务安全吗?

javascript - JavaScript WebSockets API 的机制

我一直在尝试理解一些用于打开websocket的代码:varws=newWebSocket('ws://my.domain.com');ws.onopen=function(event){...}我的问题是握手是如何开始的?如果它是在WebSocket构造函数中启动的,那么如果到那时还没有设置,如何调用onopen呢?如果WebSocket构造函数创建一个执行握手的线程,那么在握手结束之前是否必须足够快地定义onopen?如果是这样,那听起来有点危险,因为如果JS虚拟机变慢,握手可能会在定义onopen之前完成,这意味着事件没有得到处理。还是设置onopen函数触发握手?有人可以向我解

javascript - Java/SpringMVC/Maven元素的缓存清除机制

关于我正在使用的应用程序的一些背景知识:SpringMVC、JavaEEWeb应用程序、Maven。基本上,我正在寻找的是一种在每次部署我们的应用程序时刷新所有JS和CSS文件的机制。就目前而言,应用程序正在引用静态文件(例如“js/app.js”)。每次这个文件有变化,在本地重新部署后,当浏览器去下载它时,我们会得到一个304(文件没有被修改)。我的问题是:1)在重新部署应用程序时再次提供这些文件并使用应用程序版本作为缓存清除机制(例如“js/v1.0.0/app.js”)会更好吗?这可以通过servlet过滤器来完成。2)由于该元素是一个Maven动态Web元素,是否有某种插件可以

javascript - RxJS 5.0 "do while"类机制

我正在尝试使用RxJS进行简单的简短投票。它需要每delay秒向服务器上的位置path发出一次请求,一旦达到两个条件之一就结束:回调isComplete(data)返回true或尝试服务器的次数超过maxTries。这是基本代码:newShortPoll(path,maxTries,delay,isComplete){returnObservable.interval(delay).take(maxTries).flatMap((tryNumber)=>http.get(path)).doWhile((data)=>!isComplete(data));}但是,doWhile在RxJS

javascript - Selenium waitFor 机制的内部工作原理是什么?

我正在尝试通过拦截对doClick(locator)的调用来自定义Selenium的点击命令的行为(通过user-extentions.js)。基本上,只要显示我们应用程序的“忙碌指示器”,我就需要延迟点击操作。(现在对于这种事情的标准答案是在脚本中为这些情况插入一个waitFor。事实上,我们目前在整个脚本中有无数个它们。我正在努力消除它们。)检测页面元素是微不足道的部分。棘手的部分是让脚本真正等待。我看起来很有前途但失败的尝试如下所示:varnativeClick=Selenium.prototype.doClick;Selenium.prototype.doClick=funct

javascript - 类型保护错误 TS2532 之后, typescript 对象可能未定义

我正在使用Typescript2.3.4、Node.JS8.0.0和Feathers框架(版本2.1.1).我正在制作一条使用服务的快速路线,当我在feathers应用程序上获取单例实例后尝试使用该服务时,Typescript抛出一个错误TS2532:Objectispossibly'undefined'错误,即使在显式类型保护之后。路由.tsimportfeathers=require('feathers');exportdefaultfunction(this:feathers.Application){constapp=this;app.post('/donuts',async(