说明 由于我是一个有着一颗玻璃心的博主,导致在2018年后博客很少更新。原因是由于我的分享并没有解决到部分人的问题,而导致被骂了。当时这颗玻璃心就碎了,所以这两年以来很是消极,博客很少更新。这里给那些关注我,支持我的朋友说声【对不起】!前段时间,看了一个工作两年时间博主的 2021 年 flag,突然回首,还有很多记忆。所以,我决定以后每周最少一篇博客,记录我的学习和成长。谢谢! 需求场景 小程序开发完成,接到需求:需要对小程序的所有页面【onLoad】生命周期进行埋点,对页面中的点击事件进行埋点。
今天应小伙伴们意愿写一下过无限 debugger 的两个案例(其实都很简单,只要掌握一两个操作点的话)
从过年开始一直被闷在家里,少了出门和小伙伴耍的快落~每天在家里就是对着电脑忙各种事情(指摸鱼),于是总想着找点事情做做,正好看自己的小博客也不太顺眼了就想着升一下级~
Gareth Heyes在2014年首次提出了一种新型攻击手法—RPO(Relative Path Overwrite)相对路径覆盖,该漏洞是一种利用相对URL路径覆盖目标文件的一种攻击手段,其主要依赖于服务器和浏览器的解析差异性并利用前端代码中加载的css/js的相对路径来加载其他文件,最终使得浏览器将服务器返回的不是css/js的文件当做css/js来解析,从而导致XSS,信息泄露等漏洞产生
如果一个网站已经有现成的网页及业务逻辑,那么使用WebView将其内嵌到app中,省去了app重画页面与http通信的事情,无疑是更经济的做法。WebView就是Android上的一个浏览器内核,可自动展示web页面,并且实现js代码的相互调用。 下面是WebView的常用方法: getSettings : 获取浏览器的web设置信息。 addJavascriptInterface : 添加本地的js代码接口。 removeJavascriptInterface : 移除本地的js代码接口。在4.0至4.2的Android系统上,Webview自己增加了searchBoxJavaBredge_,可能被黑客利用导致远程代码执行。为阻止该漏洞,需要手工移除接口searchBoxJavaBredge_。代码如下所示:
shiro,不多说了,都知道是权限框架 用过shiro的都知道shiro自己有各种过滤器,只要配置好了就可以自动过滤,自动跳转到对应的页面,比如:认证,授权,退出等,都是通过自身的过滤器, 咱们来看这
一:本篇将解决的问题 本章主要为了解决一下几个问题: 1.JsDialog的按钮错位的问题 我们开发出的浏览器,在有些操系统上调用alert,confirm之类的对话框时,确定和取消按钮会出现错位的情况 2.右键菜单问题 我们开发的浏览器,在网页上点右键,会出现一些讨厌的英文菜单。 3.打印的问题 我们开发的浏览器,网页在调用window.print的时候,没有任何反应。 4.打开chrome的调试器 谷歌浏览器调试网页的调试器非常好用,我们开发的浏览器也可以用这个工具。 二:JsDialo
浏览器控件是每一个开发环境都具备的,这为马甲神功提供了用武之地。windows的有webbrowser,android和ios都有webview。仅仅是其引擎不同,相对于微软的webbrowser。android及ios的webview的引擎都是webkit,对Html5提供支持。本篇主要介绍android的webview之强大。
我的旧主题是基于初学前端时写的 Fuji 主题构建的大改版,而在历经多次小修小补之后终于进入了维护不动的的状态。无论是 Hugo 模板本身,还是相配的 JS 和 CSS 都进入了完全的混乱状态。趁着近期有一点时间,是时候来一次重构了。
作为前端,一直以来都知道HTTP劫持与XSS跨站脚本(Cross-site scripting)、CSRF跨站请求伪造(Cross-site request forgery)。但是一直都没有深入研究过,前些日子同事的分享会偶然提及,我也对这一块很感兴趣,便深入研究了一番。 最近用 JavaScript 写了一个组件,可以在前端层面防御部分 HTTP 劫持与 XSS。 当然,防御这些劫持最好的方法还是从后端入手,前端能做的实在太少。而且由于源码的暴露,攻击者很容易绕过我们的防御手段。但是这不代表我们去了解这块
通过JavaScript对网络数据进行加密,处理这种情况的关键在于对JS加密逻辑的分析和还原。通过浏览器开发者工具中的Sources或Network标签页面进行分析,可以找到负责加密的js文件和相关函数。之后,您可以尝试将相关js代码复制到本地,并使用pythonexecjs模块来实现相应的JS环境和加密函数。
这是《小游戏从0到1设计模式重构》系列内容第4篇,所有源码及资料在“程序员LIYI”公号回复“小游戏从0到1”获取。
这几天碰到了一个网站,打开 F12 直接 debugger ,点击下一步,一直 debugger什么都做不了。
本文作者:IMWeb helondeng 原文出处:IMWeb社区 未经同意,禁止转载 Rosin是一个Fiddler插件,协助开发者进行移动端页面开发调试。 特性 可配置的页面匹配规则 拦截console 日志内容的存储,展示,过滤 脚本运行错误捕获原理 首先在fiddler里面配置了匹配规则 访问的页面进过fiddler之后,匹配规则会生效,如命中,则在返回的内容中注入脚本。 脚本重写了console的各种方式(也监听了onerror事件) 将console打出的各种消息push到消息队列
前几天看到园子里一篇关于 Url 重写的文章《获取ISAPI_Rewrite重写后的URL》 , URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次。搜索一下URL-Rewrite可以找到很多URL-Rewrite方面的文章和组件,自己以前也多次接触过这个东东,也来说说吧。 ScottGu 有一篇非常经典的 URL-Rewrite Blog Tip/Trick: Url Rewriting with ASP.NET http://weblogs.asp.net/scot
让每次实例化PushRuleForm时,test_mode字段的choices根据用户重新赋值
本文参考了慕课网jokcy老师的React16.8+Next.js+Koa2开发Github全栈项目,也算是做个笔记吧。
相关子查询,无关子查询 所谓相关子查询,是指求解相关子查询不能像求解普通子查询那样,一次将子查询求解出来,然后求解父查询。相关子查询的内层查询由于与外层查询有关,因此必须反复求值。 事件冒泡: 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即docu
欢迎关注本人的微信公众号“前端小填填”,专注前端技术的基础和项目开发的学习。 上一节简单介绍了什么是MEAN全栈项目,这一节将简要介绍三个内容:(1)一个通用的MEAN项目的技术架构,(2)为什么我们要打造单页应用,(3)本系列项目的技术架构和开发计划。希望通过这三个问题,我们能够对本项目产生一个全局视角。 实现一个常见的MEAN全栈项目的核心就是RESTful API。这个接口通常是用MongoDB, Express, Node.js实现的,而单页应用(SPA)由AngularJs打造。这种开
Rosin是一个Fiddler插件,协助开发者进行移动端页面开发调试。 特性 可配置的页面匹配规则 拦截console 日志内容的存储,展示,过滤 脚本运行错误捕获 原理 首先在fiddler里面配
我曾经2022年初,给自己定了一个目标,要把微言码道官网重新改版。这次趁着节前休假有时间,花了几天的时间对网站进行了彻底的重写与改版,实现了这个目标。
编写一个桌面应用,并在其中添加一个webview控件,就可以模拟成一个简化版的浏览器环境,然后通过js来实现双方的通信。 这种方式实现起来很方便,各种开发语言中都有webview控件,同时还实现了web应用的桌面驻留,使它看起来更像一个桌面应用。
写过几个油猴脚本,经常对页面请求返回的数据进行拦截或者覆盖,这篇文章就做个总结,涉及到 fetch 和 xhr 两种类型的请求。
Spring MVC的定制配置需要我们的配置类继承一个WebMvcConfigurerAdapter类,并在此类使用@EnableWebMvc注解,来开启对Spring MVC的配置支持,这样我们就可以重写这个类的方法,完成我们的常用配置。
今天的文章来得晚了一点,就是为了等这个视频,给我们自己的大会做个小推广~ 腾讯 TWeb 前端技术大会,将于 10 月 24 日 9 点正式举办!线上直播票限时优惠进行中,请点击下方视频内链接报名参会,了解业界领先技术方向与实践,一起跟大厂技术大咖交流~ 1. 引言 在使用 React 之前,不知道小伙伴们有没有遇到过 更新卡顿 的问题,如下为 React 应用更新时的火焰图,JS 执行 287 ms 后,渲染任务才开始(25.4ms)。 主流浏览器刷新频率为 60Hz,即每 16.6ms 浏览器刷新一
搭建好Xamarin环境,先来小试牛刀,使用Xamarin的webView来访问网页,从而实现伪WebApp的效果(网站本身移动设备兼容WebView调用)。主要是通过WebApp来访问页面,同时通过
该文介绍了如何使用swig.js库实现JavaScript模板引擎的基本功能,包括变量、标签、继承和块等。同时,文章还介绍了如何利用该库进行模板继承,以及如何在FIS3构建中使用该库。
使当前模板继承父模板,必须在文件最前 参数: file 父模板相对模板 root 的相对路径,将在后面介绍如何实现模板继承。
15元 授权站地址:auth.qsimple.cn 刚开始更新会勤一点,只是为了完善模板,后期更新会比较慢。 Simplebs更到5.0后重构,届时模板涨价,老用户均可更新。
官方介绍: 通过Hook XSS的常用函数,并监控DOM元素的创建,从而对整个页面的js行为进行监控。当发现页面中存在XSS攻击行为时,可根据预置的选项,进行放行,提醒用户选择,阻拦三种处理方式,同时预警中心会收到一次事件的告警,安全人员可根据告警进行应急响应处理。 在研究如何绕过一个系统之前,不急于直接读代码,先旁敲侧击看看这个系统大体都做了什么。 官方介绍中,在脚本加载前,需要执行一堆配置代码: <script type="text/javascript"> var hxj_config = {
jQuery是一个JavaScript框架。它兼容CSS3,还兼容各种浏览器。文档说明很全,应用详细,成熟插件多。
常常会苦恼,平常做的项目很普通,没啥亮点;面试中也经常会被问到:做过哪些亮点项目吗?
上周,知乎上有几篇关于 Angular 和 Vue 对比的文章。本来想着的是,这些文章倒是可以指导下新手,作一些技术选型。可遗憾的是,开始的文章失去了一些偏颇,后面的文章则开始了一些攻击性行为。慢慢的,整个知乎上便是充满了一些戾气,开始了无尽的网络暴力。 于是,我想分享一下之前使用这些 MV* 框架的经验。 前端的摩尔时代 同样吧,在上周结束了《Expert Angular》的审校,这是第三本为 Packt 出版社审校的 Angular 的书。然后,先让我来讲个故事:一年前我开始审校的这本书,当时是基于 A
需求:Android调用webView加载网页的时候,拦截某一个链接不执行此链接,执行指定跳转到其他activity页面。
大家好,我是不换,现在是凌晨 01:25 ,没错,我还在码文章以及学习(:鬼畜作息
响应式原理作为 Vue 的核心,使用数据劫持实现数据驱动视图。在面试中是经常考查的知识点,也是面试加分项。
在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取不到那部分动态加载出来的数据值。但是通过观察我们会发现,通过浏览器进行url请求发送则会加载出对应的动态加载出的数据。那么如果我们想要在scrapy也获取动态加载出的数据,则必须使用selenium创建浏览器对象,然后通过该浏览器对象进行请求发送,获取动态加载的数据值。
在正常使用RX做监听的时,时不时有些页面需要重复点击进入,这样在进入该页面的时候,会产生多次触发subscribe方法,这个时候往往会出现多次赋值或者多次提交操作,即浪费资源,也让某些功能直接成为了Bug。于是博主就寻找了一天的源码与探讨了方法,特此记录下来。
01 什么是ticker? tick本来的意思是钟表的滴答声。Ticker类为游戏开发提供了一个主要的定时类。它主要的目的就是把stage渲染的工作集中起来,也就是说定时调用stage.update()这个方法。Ticker设置的频率也就是游戏的帧数了。我们把Ticker应用到小程序开发中,频率设置为1s。 Ticker的使用如下,初始化Ticker对象,添加侦听tick事件,启动ticker。 const ticker = new Ticker()// 参数为Object类型,必须有t
Apache Web 服务器可以通过 .htaccess 文件来操作各种信息,这是一个目录级配置文件的默认名称,允许去中央化的 Web 服务器配置管理。可用来重写服务器的全局配置。该文件的目的就是为了允许单独目录的访问控制配置,例如密码和内容访问。
这是《小游戏从0到1设计模式重构》系列内容第9篇,所有源码及资料在“程序员LIYI”公众号回复“小游戏从0到1”获取。
作为 Remix 的联合创始人,Ryan Florence 常常会被问到一个问题:
你以为这种错误很少吗,就我们团队就这种bug就出现好多次,被大佬骂惨了,看看我们现在线上监控到的错误
我建议这样思路写组件:首先一个大函数就是一个模块,可以简单到只是用function写,通过config对象写配置。然后通过传参调用,把这些模块连接起来,能实现功能,之后再对函数模块进行二次优化迭代。 在具体的操作上,第一步,就是像我们现在正在做的,先把下拉框啊,弹窗啊,菜单啊,都单独的写出来。让它们每个都能正常运行,并且具有一定的复用性。 第二步,上述那些组件写好之后,就把它们在同一个页面上引入,然后用这些组件来拼装成一个页面。这就是最简单的页面组件化、模块化了。 第三步,在拼装页面的过程中,逐步的迭代优化
假设一个项目需要重构,有很多页面需要重写,那么此时可以使用 Vue 对某一个页面进行重构,等有时间时再对其他页面进行一点一点重构,那么这个过程可以理解是渐进式的
编译模式:自定义组件模式,这个默认自动设置的。这方面比较复杂,曾经的叫非自定义组件模式官方不在支持。
概念:java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。
领取专属 10元无门槛券
手把手带您无忧上云