作为前端,一直以来都知道HTTP劫持与XSS跨站脚本(Cross-site scripting)、CSRF跨站请求伪造(Cross-site request forgery)。但是一直都没有深入研究过,前些日子同事的分享会偶然提及,我也对这一块很感兴趣,便深入研究了一番。 最近用 JavaScript 写了一个组件,可以在前端层面防御部分 HTTP 劫持与 XSS。 当然,防御这些劫持最好的方法还是从后端入手,前端能做的实在太少。而且由于源码的暴露,攻击者很容易绕过我们的防御手段。但是这不代表我们去了解这块
项目被发布到npm上后,引起了激烈的讨论,最终因为安全问题被npm官方移除,代码也闭源了
官方介绍: 通过Hook XSS的常用函数,并监控DOM元素的创建,从而对整个页面的js行为进行监控。当发现页面中存在XSS攻击行为时,可根据预置的选项,进行放行,提醒用户选择,阻拦三种处理方式,同时预警中心会收到一次事件的告警,安全人员可根据告警进行应急响应处理。 在研究如何绕过一个系统之前,不急于直接读代码,先旁敲侧击看看这个系统大体都做了什么。 官方介绍中,在脚本加载前,需要执行一堆配置代码: <script type="text/javascript"> var hxj_config = {
本文作者:IMWeb helondeng 原文出处:IMWeb社区 未经同意,禁止转载 Rosin是一个Fiddler插件,协助开发者进行移动端页面开发调试。 特性 可配置的页面匹配规则 拦截console 日志内容的存储,展示,过滤 脚本运行错误捕获原理 首先在fiddler里面配置了匹配规则 访问的页面进过fiddler之后,匹配规则会生效,如命中,则在返回的内容中注入脚本。 脚本重写了console的各种方式(也监听了onerror事件) 将console打出的各种消息push到消息队列
Rosin是一个Fiddler插件,协助开发者进行移动端页面开发调试。 特性 可配置的页面匹配规则 拦截console 日志内容的存储,展示,过滤 脚本运行错误捕获 原理 首先在fiddler里面配
为了提高开发效率,开发人员往往会使用原生app里面嵌套前端h5页面的快速开发方式,这就要涉及到h5和原生的相互调用,互相传递数据,接下来就实践项目中的交互方式做一个简单的记录分享,废话不多说,直接上正文:
经过我们团队的调研,我们选择了无界作为微前端的技术栈。目前的使用效果非常好,不仅性能表现出色,而且使用体验也不错。
相信跨域有什么手段,大家都背得滚瓜烂熟了。现在我们来做一些不在同一个tab页面或者跨域的实践。
将前端应用分解成一些更小、更简单的能够独立开发,测试、部署的小块,而在用户看来仍然是内聚的单个产品。微前端的三个要素,即:独立运行、独立开发(与技术栈无关,应用之间不应该有任何直接或间接的技术栈、依赖、以及实现上的耦合)、独立部署
当我们遇到请求后台接口遇到 Access-Control-Allow-Origin 时,那说明跨域了。
最近移动端项目用alert和confirm进行信息提示,但发现在IOS系统中,每次提示信息上面都会被添加一行URL地址。
JS的变量与其他语言的变量有很大区别,因为其变量松散的本质,决定了变量只是在特定时间内用于保存特定值的一个名字而已,变量的值及其数据类型可在声明周期内改变。
问题:逻辑复杂,事件绑定逻辑混乱,在某些浏览器上onload和onreadystatechange都会触发,需要另外加标记位判断,逻辑复杂。
随着Web技术的发展和移动互联网的发展,Hybrid技术已经成为一种前端开发的主流技术方案。那什么是Hybrid App呢?
本篇讲解常见的几种跨域方案:JSONP、CORS、图像Ping、document.domain、window.name。
需求描述 上上周接到了新的项目,移动端需要做一个底部有五个导航,点击不同的导航页面主体显示不同的页面,其中两个页面是自己做,而另外三个页面是引用另外三个网址,其中两个网址为内部项目,另外一个为外部(涉及跨域)。 问题 考虑再三后最省时间成本的就是使用iframe,虽然在移动端使用,我的内心是很拒绝的,不过其他方案调研了下都不太符合现状。每点击一次加载一个新的iframe,比较懒,所以两个新页面也做成了iframe,在做的过程中出现了如下问题,这里总结一下: 1.嵌入的iframe页面无法滚动 2.met
写在开篇假设有一个需求,想要在网页内显示其它网页,怎么搞?很简单,可以用iframe来解决,那啥是iframe?本篇的主题就是它,接下来我们一一解剖它的用法。嵌入第三方url页面我们先来两个测试场景,对比一下,啥场景呢?就是可被嵌入的页面和不可被嵌入的页面。下面这2个页面是不可被嵌入的嵌入python的官网主页<!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8"> <title>彩虹运维技术栈社区主页</t
static 是静态变量,在局部函数中存在且只初始化一次,使用过后再次使用会使用上次执行的结果; 作为计数,程序内部缓存,单例模式中都有用到。
源码:https://github.com/maqi1520/Clone-processon
同源策略 首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个域加载的脚本去获取另一个域上的文档属性。也就是说,受到请求的 URL 的域必须与当前 Web 页面的域相同。这意味着浏览器隔离来自不同源的内容,以防止它们之间的操作。 js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。 只要协议、域名、端口有任何一个不同,都被当作是不同的域。 下面介绍几种常用的跨域请求方式 默认端口为:8080
Sandbox(沙盒/沙箱)的主要目的是为了安全性,以防止恶意代码或者不受信任的脚本访问敏感资源或干扰其他应用程序的执行。通过在沙盒环境中运行,可以确保代码的行为被限制在一个安全的范围内,防止其超出预期权限进行操作。
在CefSharp中,我们不仅可以使用Chromium浏览器内核,还可以通过Cef暴露出来的各种Handler来实现我们自己的资源请求处理。
由于activiti与系统应用主题样式出入较大,协商后决定将activiti的editor-app放在前台。
主要包括,打开浏览器、关闭浏览器、浏览器前进,后退操作、隐式等待、关闭当前窗口、保存图片、重写定位元素、输入、清除文本框内容、点击元素、获取网页标题、重写send_keys方法、重写跳转iframe方法、切回父级iframe等内容。
首先,你需要启动Links插件才能保证主题正常运行。 由于原插件存在一定问题,我将修改后的版本置于下载区。
前言:很多博友不仔细看完内容就直接认为用 iframe 不好之类的云云,而实际上本文就是教你在必须使用 iframe 的时候,该如何躲过搜索引擎的抓取,避免不利于 SEO 的情况! 那么,何为“必须要用 iframe 的时候”?我举个简单的例子:一些主题分享网站,很多时候会使用 iframe 框架调用主题作者的网站来做主题演示,这时候就会产生大量的 iframe 框架,那么本文的方法就可以派上用场了! 导读:了解一点 seo 的站长,应该都知道爬虫都不喜欢 iframe 或 frame,因为蜘蛛访问一个网址
大家好,今天和大家讨论的是 Electron 的另一个大的安全措施 —— contextIsolation 即上下文隔离
如果你的网站上面有很多第三方JS代码,那么“下载速度的不可控”很有可能导致你的网站会被拖慢。因为JS在执行的时候会影响到页面的DOM和样式等情况。浏览器在解析渲染HTML的时候,如果解析到需要下载文件的script标签,那么会停止解析接下来的HTML,然后下载外链JS文件并执行。等JS执行完毕之后才会继续解析剩下的HTML。这就是所谓的『HTML解析被阻止』。浏览器解析渲染页面的抽象流程图如下:
从网站开发者的角度来看,第三方JS相比第一方JS有如下几个不同之处: 下载速度不可控 JS地址域名与网站域名不同 文件内容不可控 不一定有强缓存(Cache-Control/Expires) 如果你的网站上面有很多第三方JS代码,那么“下载速度的不可控”很有可能导致你的网站会被拖慢。因为JS在执行的时候会影响到页面的DOM和样式等情况。浏览器在解析渲染HTML的时候,如果解析到需要下载文件的script标签,那么会停止解析接下来的HTML,然后下载外链JS文件并执行。等JS执行完毕之后才会继续解析剩下
最近项目里有个广告位需要动态配置,后台给了一段 html 嵌套iframe标签的代码,需要Android拦截iframe内部的跳转,自己做处理。
产品需求来啦:点击页面上某个东西,要在新窗口中打开一个页面,注意!要在新窗口中打开。你呵呵一笑,太简单了:
iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式。
本文讲述了一种在新窗口中打开页面时需要注意的安全问题和解决方案。当使用window.open()在新窗口中打开页面时,可能会存在安全风险。例如,攻击者可以通过恶意脚本劫持新窗口中的页面,从而窃取用户的个人信息。为了防范这种安全风险,可以采用以下方法:使用noopener属性或window.open()并设置opner为空,这样新窗口将不会继承父窗口的任何属性。另外,也可以使用iframe来打开新窗口,并确保iframe中的内容安全。最后,如果必须在新窗口中打开页面,可以使用第三方库,如OpenURL,来避免安全风险。
相信每一个前端er对于跨域这两个字都不会陌生,在实际项目中应用也是比较多的。但跨域方法的多种多样实在让人目不暇接。老规矩,碰到这种情况,就只能自己总结一篇博客,作为记录。
网课结束了啊哈哈哈哈哈哈...咳咳咳...呜呜呜... 这段时间在积极备考呢,英国考试局把毕业前最后一次全球统考取消了,改为学校评估成绩并采用专业科学严谨的数据模型分析学校提交成绩的可信度做出调整并公布最终成绩,学校无法胡作非为。于是还是需要参加老师自行出题的模考和期末考试了...
404星链计划即将迎来改版更新啦,我们会在项目展示、奖励计划等方面有所优化调整,同时会新收录几个优秀的开源安全工具。在此之前,让我们一同回顾一下星链计划自2020年8月上线以来我们收录过的部分项目,它们中很多已经为大家熟知,成为日常工作的一部分,有些还有待你去探索新的利用方式~ 今天介绍的项目是As-Exploits。
大家好,今天和大家讨论 nodeIntegrationInSubFrames , 这个选项看起来和 nodeIntegration 很像,不过后面跟了 InSubFrames ,说明是在 SubFrames 中开启 Node.js
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。
从应用场景来看,类似于于Android的WebView,外部对嵌入页面的控制权较大,包括CSS/JS注入、资源拦截等,而嵌入页面对外部的影响很小,是个相对安全的沙盒,例如仅可以通过一些特定方式与外部通信(如Android的addJavascriptInterface())
作为面试官,我经常听到很多候选人说在公司做的项目很简单,平常就是堆页面,写管理端,写H5,没有任何亮点,我以我一次面试候选人的经历分享给大家
PhoneGap(Codova 的前身)作为 Hybrid 鼻祖框架,是一个开源的移动开发框架,允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台的Hybird WebUI开发,应该是最先被开发者广泛认知的 JSBridge 的应用场景。而对于 JSBridge 的应用在国内真正兴盛起来,则是因为杀手级应用微信的出现。
•如何进行路由劫持•如何渲染子应用•如何实现 JS 沙箱及样式隔离•提升体验性的功能
通过前边三篇的学习,想必大家已经对iframe有了一定的认识和了解,今天这一篇主要是对iframe的一些特殊情况的介绍和讲解,主要从iframe的定位、监听事件和执行js脚本三个方面进行展开介绍。
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被
本文讲述了作者在参加Discord众测的过程中,通过多个bug的综合利用,成功发现了Discord桌面应用的远程代码执行漏洞(RCE),收获了$5,300的奖励。
领取专属 10元无门槛券
手把手带您无忧上云