自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Web应用反调试的浅显思考和探索(四)

以支付流程为例,必须严格按照身份验证→订单生成→支付确认的顺序进行模块调用,若未完成身份验证就直接调用支付确认模块,系统将立即触发异常,确保业务逻辑的正确执行。在实际运行中,若模块 A 执行完毕后,超过 10 秒(可根据具体业务场景灵活调整)未触发模块 B 的调用,系统会判定为可能存在调试中断操作,进而触发熔断机制。③ 模块设计:对每个模块进行详细的设计,包括模块的接口定义、内部逻辑结构、数据处理流程等。⑤ 模块测试‌:对每个模块进行单元测试和综合测试,确保模块的功能正确性和稳定性。

2025-06-16 13:09:47 368

原创 Web应用反调试的浅显思考和探索(三)

现有反调试技术在实现过程中,多从前端防御或服务端防御的单个或少数几个点入手,防御层面较为单一。前端防御与服务端防御未能通过有效的方式进行整合,难以形成综合防御体系。单个防御措施的脆弱性使得攻击者容易突破防线,攻击成本较低,导致整体防御效果不佳,无法满足 Web 应用日益增长的安全需求。如何以前后端全链路协同防御的思想来进行反调试实践,是构建全面且高效的 Web 应用反调试的终极解决方案。后面的文章中会以这个思想,继续探索反调试技术。

2025-06-16 11:51:49 294

原创 Web应用反调试的浅显思考和探索(二)

通过无限debugger干扰调试的,可以通过chrom中Never pause here跳过debugger语句。或者重写setInterval过滤包含debugger的函数。通过监听浏览器窗口大小来的方式进行反调试的,只需要在开发者工具中以独立窗口打开,从而避免窗口尺寸监测。

2025-03-11 09:12:19 355

原创 Web应用反调试的浅显思考和探索(一)

在数字化高速发展的今天,Web应用已成为最常见的信息交互平台,连接着人与人、人与企业、人与政府机构等,为我们的生活和工作提供了诸多便利。随着Web应用的普及和发展,Web应用的安全性也成为了关注的焦点,如何保护Web应用的安全,避免潜在漏洞被非法利用,如何保证用户敏感信息不泄露,如何保证Web应用的核心业务逻辑、算法、技术等知识产权不泄露,如何加强系统稳定性等都是需要关注的重点。通过采取有效的反调试手段,能够保护Web应用的数据安全、业务逻辑不泄密、提升用户体验,从而提高Web应用的整体安全性。

2025-03-10 14:01:59 333

原创 Less基本使用

混合(Mixin)是一种将一组属性从一个规则集包含(或混入)到另一个规则集的方法。全局定义global.less,或者模块定义对应的less文件。为了样式统一配置,样式复用,变量命名更简单。然后混入继承border属性。首先定义一个border。全局引入或者模块引入。

2025-02-07 09:11:20 444

原创 TypeScript基础

注意,即使 tom 被声明为 Animal 类型,但因为它的值是 Horse,调用 tom.run(34) 时,它会调用 Horse 里重写的方法。在上面的例子中,我们必须在 Person 类里定义一个只读成员 name 和一个参数为 name 的构造函数,并且立刻将 name 的值赋给 this.name,这种情况经常会遇到。总结:TypeScript目前在社区中流行度越来越高,比如Vue和Angular,都是用TypeScript进行了重写,还有一些工具和基础类库也都使用了TypeScript。

2024-12-12 08:47:39 1468

原创 TypeScript开发规约思考(一)

TypeScript的受欢迎程度不言而喻,我们常用的Vue、React都在使用TypeScript开发,借助于TypeScript对面向对象和静态类型的良好支持,可以让我们的JavaScript代码编写更健壮、更可维护,适应复杂的项目。泛型在TypeScrip中应用的非常广泛,例如在做数据请求时,对于请求结果我们可以不指定类型,此时TypeScript会自动根据值的类型进行类型推断,当请求结果没有被赋值时,则会推断为any类型。我们也可以在等号两边都添加类型,当然这并没有什么意义,只会增多类型代码量。

2024-12-12 08:37:05 475

原创 前端工程化(五)项目脚手架设计与实现

目前前端项目的配置越来越复杂,项目类型也众多,不同的项目采用不同的配置导致后期管理成本和维护成本变高,并且项目结构难以统一和规范,从零开始创建项目时需要大量复制粘贴过往的项目代码,耗时耗力。让项目从创建到开发再到部署更加规范、快速和便捷,这是脚手架存在的意义。在实际的项目中,我们往往会对项目的一些基础功能做一些封装,比如统一的异常处理,统一的权限管理,国际化,常量,路由,项目结构等等。设计脚手架的基本思路是将项目模板放在git上,在创建项目时,根据不同的预设参数,下载不同的项目模板来创建项目。

2024-12-11 08:35:35 428

原创 前端工程化(四)私有npm仓库解决方案

随着项目增多,会有很多复用的业务组件或者功能,完全可以将这些封装成包进行复用,避免重复造轮子(例如脚手架等)。如果公司处于隐私保护的目的,不想将封装好的包推送到npm社区,但又需要一套完整的包管理工具来对他们进行管理,方便公司内部开发人员使用。所有有必要创建私有的npm仓库。除了直接安装使用,也可以对代码进行二次开发,license都是MIT。后端工程是nodejs实现的,前端UI工程是react。可以看到所有已发布的私有包,可以查看依赖、版本、说明、发布时间等信息。为什么需要私有npm仓库?

2024-12-10 10:35:54 905

原创 Flutter开发环境搭建及常见问题-windows环境

flutter开发环境安装,windows

2024-12-10 08:48:57 1907

原创 前端工程化(三)交互规则

一款产品的成功与否,交互体验占据举足轻重的地位,就我个人认为,企业微信就是比钉钉要好用,京东app也比淘宝app要好用。在做项目中,由于交付时间的压力,更多的时候以实现功能为主,很少会考虑交互体验,然而良好的交互体验能让我们的项目更成功,反之即使我们的功能实现在完善也是毁灭性的。在第一期前端工程化的介绍中提到,要从模块化、组件化、规范化、自动化四个方面进行实践,本期内容也是规范化中的一部分。让用户了解到现在的位置,不会在产品中迷路,例如面包屑和导航可以清楚知道自己的位置。- 提供帮助信息,或者帮助文档。

2024-11-19 16:33:03 471

原创 Three.js基础概念

场景内的内容,通过相机来进行观察,相机的位置、方向、角度影响相机看到的内容,浏览器窗口则是相机的取景框,相机的角度、方向、位置可以任意调整。几何体,可以是三维的也可以是二维的,三维例如长方体、锥体、球体等,二维例如长方形、平行四边形、圆形等。简单的几何图形、点、线、面、贴图等开发可以完成,复杂的模型需要专业的人使用专业的软件制作,模型的设计也需要专业的设计人员。3D可视化、3D产品展示、数据可视化、游戏、科学教育、家装设计、Web VR等。体现在物体表面,例如常用的漫反射、镜面反射,也可以引入外部图片。

2024-11-19 16:00:54 362

原创 前端工程化(二)Webpack原理

Plugin就像是一个插入到生产线中的完整功能,在特定的时机对生产线上的资源做处理。Webpack是一个打包模块化JavaScript的工具,在Webpack的世界里,一切文件都是模块,通过Loader来转换文件,通过Plugin注入钩子,最后输出由多个模块组合成的文件,Webpack专注以构建模块化项目。在以上过程中,Webpack 会在特定的时间点广播出特定的事件,插件在监听到感兴趣的事件后会执行特定的逻辑,并且插件可以调用 Webpack 提供的 API 改变 Webpack 的运行结果。

2024-11-12 09:25:16 729

原创 Flutter基础

所以H5不能实现的功能都需要原生来做,原生代码会预先实现一些访问系统功能的API,然后暴露给WebView,以供JavaScript进行调用,WebView就成了JavaScript与原生API之前的通信桥梁,主要负责JavaScript与原生之间传递调用消息,然而消息传递必须遵守一个标准协议,它规定了消息的格式与含义,我们把这种工具称之为WebView JavaScript Bridge,简称JsBridge,它是混合开发的核心。如果想重新绘制此组件,只能重新创建此组件新的实例。

2024-11-12 09:11:52 846

原创 前端工程化(一)概述

比如目录结构的制定,合理的目录结构有助于提高项目的逻辑性和结构性,方便资源的统一管理和定位,有更好的拓展性;接口规范,这个是开发中最重要的规范,不仅涉及前端团队,也涉及后端团队,在SPA单页应用的时代,前后端分公非常清晰,协作开发的关键点就是接口;我们通常说一切皆组件,整个页面可以看成是一个大型组件,一个页面又可以按功能或者业务逻辑进一步差分成中型组件,中型组件还可以进一步拆分成小型组件,直到拆分成DOM元素为止,DOM元素可以看成浏览器的组件,也就是基础组件。怎么提高项目的开发质量?

2024-11-12 09:05:25 344

原创 微前端的浅显理解

任何技术栈都不能保证一直生命力旺盛,当我们的系统经过长时间的迭代升级,技术栈落后是不可避免的,即便都是用Vue来开发,3.x和2.x也是不兼容的,你无法在2.x的代码中使用composition api等新特性,react 15和16也面临同样的问题。微前端并非适用于所有系统,当我们系统不能推倒重做,新的需求还在源源不断的被提出,或者系统需要一套支持动态插拔的机制时,微前端是我们最好的选择。大型应用的前端工程也面临同样的问题,于是我们将微服务架构的思想运用到前端中,便有了微前端的概念。

2024-11-12 09:01:36 1908

原创 前端安全生产体系

在开发、测试、发布、上线运行等各个阶段,如何让我们的代码质量更高,减少或者完全避免带着缺陷发布,或者即便是上线运行发现的缺陷也能及时得到预警和处理,这是前端安全生产体系建设的目的和要解决的问题。但针对大型项目或者长期迭代的产品来说,全链路的前端安全体系是非常必要的。前端安全生产目的在于覆盖前端研发全流程,高质量的交付生产物,在开发、测试发布、线上运行三个关键节点,通过一系列的自动化流程机制以及规范,降低或避免前端代码风险,保证线上稳定运行,尽可能规避人为犯错引起的缺陷,达到完全避免或者降低缺陷带来的损失。

2024-11-12 08:55:48 597

Vue开箱即用的项目脚手架

询问式Vue项目脚手架代码,简单配置即可使用,配合自己的项目模板,实现快速初始化项目的目标,根据询问参数的结果,替换项目模板中的动态参数,实现个性化创建

2024-12-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除