- 博客(88)
- 资源 (4)
- 收藏
- 关注

原创 前端安全之常见漏洞及防御
随着项目复杂度的提升以及用户体量的增大,前端安全变得越来越重要。平时系统运行正常,一旦出现安全问题,轻者部门扣分,严重的可能对公司造成严重损失。了解一些常见漏洞,平时coding时注意,防患于未然。
2022-10-09 17:37:03
6285
1

原创 前端接入单元测试(Node+React)
node项目可以利用egg自带的测试工具,针对controller, service, extend, helper等模块编写单元测试,特别是controller重要的路由需要做单元测试;控制台和其他React项目可以利用jest工具,针对方法、组件、模块去做单元测试,特别是组件,可以利用快照功能避免多次修改测试用例。单元测试是测试流程的基础部分,粒度最高成本最低,对于提升前端质量有重要作用。
2022-09-26 11:23:56
4248

原创 React组件设计模式与最佳实践
React组件的设计非常灵活,可供选择的方式也很多,如何正确合理地设计组件,在这里总结了一些常用的设计方法和实践
2022-05-02 17:14:52
2789

原创 小程序商品规格属性界面布局,以及存在的坑
最近做一款商城小程序,其中有个弹层展示商品属性,商品界面存在滚动条,弹层显示后,划动屏幕,会使后面的滚动条滚动,在网上查找了一些方法,基本都是一些重复的解决方案,自己试了根本没用,总结一下有以下几种:1.给弹层加catchtouchmove事件的空方法,会导致弹层里面的滚动条也不会滚动,其给出的解决办法含糊不清,而且网上很多这种回答,不管用啊:https://www.cnblogs.com...
2018-05-21 11:06:46
9151
原创 官网SEO优化策略
可以阻止爬虫访问无效的URL(如已下线的产品页面、动态URL、需要权限验证的URL以及存在问题的旧静态URL),以提高网站核心静态资源的抓取和索引效率。快速的页面加载速度不仅可以提高用户体验,也是搜索引擎排名的重要因素,需要持续的对官网做性能优化。通过合理配置每个页面的title、description和keywords,可以提高搜索引擎对页面内容的理解,从而提高搜索排名。为图片添加alt属性,描述图片表达的含义,填入合适关键词,目前两个页面,有32张图片待添加。
2024-03-08 11:21:22
479
原创 TS常用高级类型有哪些,以及如何使用
TypeScript 提供了许多高级类型操作符,用于处理和转换类型。这些高级类型操作符可以在 程序中中更灵活地操作和转换类型。根据需求,可以组合使用这些操作符来创建更复杂的类型定义。
2023-08-22 11:17:26
358
原创 web前端学习/工作笔记(十六)
云原生、循环依赖、路由三种模式,es6要不要转es5,unplugin-vue-components的使用,网站被篡改的原因
2022-10-10 15:47:08
331
原创 web前端学习/工作笔记(十四)
降域是通过将不同域的 document.domain 指定为其共同父域从而使其同源的跨域解决方案。cos文件下载,a标签浏览器可以预览的文件会到浏览器预览,doc/excel会直接下载;blog.sch.com、game.sch.com 具有共同的父域 sch.com。靠谱的下载方式是试用后端的下载能力,返回前端流,但是文件大的时候下载会慢。那么将两个域名下的页面的域修改为 sch.com 即可解决跨域问题。wx.invoke不支持,config的beta设为true。h5不能点击按钮分享,小程序可以。
2022-10-10 15:36:56
202
原创 web前端学习/工作笔记(十二)
egg domainWhiteList的匹配规格,全等或以白名单为后缀则视为可信域名。nginx不要随便删日志,如果删日志,要在服务停了之后,否则文件句柄还在。根域名访问cos桶,需要cos桶开启静态网站访问。git命令获取增量和修改的文件。
2022-10-10 15:18:33
1310
原创 web前端学习/工作笔记(十一)
38. git add .的意思:https://blog.youkuaiyun.com/weixin_42416812/article/details/100093180。40. “target和currentTarget的区别是: target:触发事件的元素。bug: ios bug 没有提前安排在safari浏览器做测试,上239发现有问题,加班分析堆栈信息,对兼容性做处理。39.dom变化后,dom上绑定的事件会失效,可在dom变化后绑定事件。如何拆解任务、任务分配、任务节点、推进问题处理。
2022-10-10 15:11:31
2128
原创 web前端学习/工作笔记(十)
25.合并冲突切换不了分支: git status查看合并状态,根据提示解决。29.给伪元素添加点击事件,pointer-events。
2022-10-10 15:08:18
962
原创 web前端学习/工作笔记(八)
9.eslint规范:constructor,没有state时,不用显示定义,没有state则推荐使用无状态组件。因为文件引用大小写问题,原因是查找autoComplete时限定了js,改了之后就可以了。10. 有状态组件,用class定义,一般有复杂的内部逻辑。单词Component单词大小写写错。
2022-10-10 15:00:31
3456
原创 js剪绳子【剑指offer】
经典的动态规划和贪婪算法动态规划function cutRope(number){ // write code here if(number<=3){ return number-1 } //记录每一个number的乘积的最大值 let arrMax=[0,1,2,3] let max=0 //第一个循环往ar...
2022-09-26 11:35:33
155
原创 小程序技术选型
由于微信小程序原生开发,和团队技术栈(react)不统一,不支持ES7以上的高级语法,不支持工程化、缺少统一配置等局限性,选型考虑市面上主流小程序框架,期望能够:满足当前需求,并能扩展到其他端,比如H5技术栈统一,降低开发维护成本,提升研发效率有不错的性能框架语言微信原生 wxml,类xml写法Vue: uni-app、mpvueReact: taro 、rax、remax开发维护成本框架Uni-appMpvueRemaxRaxTaro语法VueV.
2022-05-07 10:47:41
5149
原创 nginx几点总结
nginx屏蔽head请求nginx head请求过多导致疯狂写日志nginx禁用head请求日志 得写到location里if ($request_method ~* OPTIONS|HEAD){ access_log off;}或者map $request_method $m { OPTIONS 0; HEAD 0; default 1;}server{ access_log /usr/local/nginx/logs/admin_acce.
2022-05-02 18:34:45
5327
原创 SSRF漏洞是什么,如何修复?
背景在一次内部安全月审查过程中,某业务内部查出有ssrf漏洞,通过伪造url路径,可以看到暴露内网ip,存在较高安全隐患。原理SSRF漏洞属于前端漏洞的一种,造成危害的要素是:攻击者可参与构造(多以传入参数的形式)服务器所对外发送请求的内容(如协议、地址、路径、参数等)。因此SSRF漏洞的防御和修复主要以此出发点消除威胁,需要注意的是:不管系统是否对获取内容进行了展示,攻击者能利用服务器发送超出原本功能预期的对内网系统的请求包(简化理解为 攻击者可对内网系统发送任意内容时),SSRF漏洞即存在且能造成
2022-05-02 18:12:13
6477
转载 小程序底层原理分析
小程序是基于WEB规范,采用HTML,CSS和JS等搭建的一套框架,微信官方给它们取的名字:WXML,WXSS,但本质上还是在整个WEB体系之下构建的。 WXML,说到底就是xml的一个子集。WXML采用微信自定义的少量标签WXSS,大家可以理解为就是自定义的CSS...
2021-01-24 16:38:37
392
转载 HTTPS 原理详解
HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 近两年,Google、Baidu、Facebook 等这样的互联网巨头,不谋而合地开始大力推行 HTTPS, 国内外的大型互联网公司很多也都已经启用了全站 HTTPS,这也是未来互联网发展的趋势。为鼓励全球网站的 HTTPS 实现,一些互联网公司都提出了自己的要求:1)Google 已调整
2021-01-24 13:06:53
423
原创 0.1+0.2!=0.3的分析
在JS中进行数字运算时,会有一个叫做 数字运算中的精度缺失的问题。这篇文章,就带着大家了解下JS运算中精度的缺失问题。 现象 我们在js中进行如下运算时 console.log(0.1+0.2) // 结果0.30000000000000004 而不是0.31 可以看到0.1 + 0.2 != 0.3 原因 数...
2020-12-19 20:50:24
765
1
原创 webstrom开发小程序
webstorm是不支持wxml和wxss的文件类型,没有语法高亮,可以右键wxml文件,关联html文件,右键wxss文件,关联css文件,如下:
2020-12-10 11:45:33
298
原创 webpack3.0升级4.0
安装/升级依赖devDependencies:"extract-text-webpack-plugin": "^4.0.0-beta.0" "html-webpack-plugin": "^4.0.0-beta.14" "mini-css-extract-plugin": "^0.9.0" "preload-webpack-plugin": "^3.0.0-beta.4" "...
2020-03-29 16:32:51
3179
原创 linux修改文件
1、进入文件:vim 文件名eg #vim /etc/httpd/httpd.conf2、查找待修改内容位置 :(1)shift+“:”,使文件变成可查询状态(2)输入 / +查询内容 (eg 查询Directory参数,即 /Directory)eg 找到Directory参数,注释掉Require all denied添加Require all granted3、找到位置后修改:按...
2020-02-02 21:42:37
1334
原创 Node.js相比于前端js
相比于前端js,有不少新的api,有操作底层的,有连接mysql的,另外是有了分层、处理请求象等服务端的一些概念感觉更多的是作为中间层,主要可以降低服务器复杂度,后端只提供通用的接口,想怎么显示,中间层组装,更灵活,但是更多事情就到前端了,更依赖前端资源node.js引用包,和前端一样,只是额外依赖的包也会自动装node.js作为中间层的好处:安全些(主服务器不暴露给前端)性能 (高...
2020-01-31 16:21:59
190
原创 Node.js支持高并发原理
node是单线程,为什么支持高并发呢?每个Node.js进程只有一个主线程在执行程序代码,形成一个执行栈(execution context stack)。主线程之外,还维护了一个"事件队列"(Event queue)。当用户的网络请求或者其它的异步操作到来时,node都会把它放到Event Queue之中,此时并不会立即执行它,代码也不会被阻塞,继续往下走,直到主线程代码执行完毕。主线程...
2020-01-31 16:15:09
815
原创 读书笔记之之高效能人士的七个习惯
一. 积极主动:个人愿景的原则积极主动意味着在刺激和回应之间有选择的自由,针对特定环境选择回应方式,主动创造有利环境,消极被动的人容易受到外界环境的制约,坐等命运安排。积极主动者专注于影响圈,专心做力所能及的事;消极被动者专注于环境问题和超出自己能力范围的事,为消极行为寻找借口,允许自己受制于外界条件。积极主动的人改变习惯、手段和看法来解决三类问题:可直接解决的、可间接解决的、无...
2020-01-29 23:04:53
405
原创 读书笔记之算法40讲
effective C#1.const关键字用来声明那些必须在编译期得以确定的值,例如attribute的参数、switch case语句的标签、enum的定义等,偶尔还用来声明那些不会随着版本而变化的值。除此之外的值则应该考虑声明成更加灵活的readonly常量。算法40讲1.算法学习:分类-chunked up刻意练习(枯燥,练习缺点,弱点,不舒服的)反馈(主动:github看高手...
2020-01-29 23:01:53
148
原创 docker安装mysql并远程访问
安装mysql 5.7,等待mysql下载完docker pull mysql:5.7启动mysqldocker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql命令说明:–name 后面的是docker容器名-p 3306:3306:将容器的3306端口映射到主机的3306端口-e MYSQL...
2020-01-29 22:44:09
1112
原创 Linux上安装docker
uname -r 查看系统版本docker安装yum install docker或者sudo wget -qO- https://get.docker.com | sh 启动dockersystemctl status docker镜像命令docker images 查看docker pull 镜像名:版本号ctrl +z 终止pull...
2020-01-29 22:41:00
177
原创 如何参与github开源项目
clone到本地在github上有注册的账号,https://github.com/找到自己感兴趣的开源项目,如:https://github.com/wuhan2020/wuhan2020.github.io在项目主页点一下fork点右侧自己的头像,点击Your repositories,找到刚才fork的项目clone 该仓库到本地,切到相应的分支,默认dev这时你就可以发挥自己...
2020-01-29 17:59:24
471
原创 js事件循环机制和优先级
浏览器的渲染进程是多线程,包括GUI渲染线程js引擎线程事件触发线程定时器触发线程异步http请求线程主执行栈和任务队列所有的任务可以分为同步任务和异步任务,同步任务,顾名思义,就是立即执行的任务,同步任务一般会直接进入到主线程中执行;而异步任务,就是异步执行的任务,比如ajax网络请求,setTimeout 定时函数等都属于异步任务,异步任务会通过任务队列( Event Que...
2020-01-28 11:56:04
4368
原创 读书笔记之webpack实战
1.commonjs只会对require的代码执行一次 之后的require只会直接取其导出值2.es6 Module动态映射,CommonJs是值拷贝,前者可以支持一定程度的循环依赖,需要由开发保证导入时,已经设置好正确的导出值3.通过单独加载包内的单独文件,从而减小打包体积4.当第三方依赖较多时,我们可以用提取vendor的方法将这些模块打包到一个单独的bundle中,以更有效地利用客户...
2020-01-26 22:58:43
315
原创 快速理解BFC原理
一、常见定位方案在讲 BFC 之前,我们先来了解一下常见的定位方案,定位方案是控制元素的布局,有三种常见方案:普通流 (normal flow)在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行,除非另外指定,否则所有元素默认都是普通流定位,也可以说,普通流中元素的位置由该元素在 HTML 文档中...
2020-01-26 11:43:36
3520
转载 CSRF攻击与防御(写得非常好)
转载地址:http://www.phpddt.com/reprint/csrf.html CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存...
2020-01-18 14:28:17
320
原创 web前端学习/工作笔记(七)
webstrom gitlab操作拉取项目:gitlab项目页面clone->http复制->粘贴到webstrom(VSC,checkout from ,git)->test成功即可拉取提交代码到dev:找到git branchs或右下角的origin/dev,checkout as dev,本地就有dev分支了,右上角提交就到dev了112.Select组件双向...
2020-01-17 23:47:54
1601
6
原创 web前端学习/工作笔记(六)
跨域CORS 同源策略,浏览器会禁止一些行为同源(协议、域名/域名、端口相同)不限制,任一不同则限制跨域只针对浏览器,后端不存在跨域问题(比如代理)可以发,但是浏览器拒绝接收,http协议拒绝发跨域请求解决跨域:后端给浏览器返回 “Access-Control-Allow”预检请求:当跨域发送非简单请求,会触发预检请求:Options,后端需要响应预检请求来决定是否发送实际请求...
2020-01-17 23:46:59
324
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人