前言 在现代新建一个 JS 相关的项目往往都是从 package.json 文件开始的,不过这个文件里需要的字段实在是太多了,正常人都记不住,所以 npm 官方提供了 npm init 命令帮助我们快速初始化 package.json 文件。执行之后会有一个交互式的命令行让你输入需要的字段值,当然如果你想直接使用默认值,也可以使用 npm init -y 来超速初始化。 npx 随着技术的快速发展,发现初始化 package.json …
分类
日常杂事
什么是 CSRF 在了解 CSRF 之前我们需要科普两个前提。首先是登录权限验证的方式有很多种,目前绝大多数网站采用的还是 session 会话任务的方式。session 机制简单的来说就是服务端使用一个键值对记录登录信息,同时在 cookie 中将 session id(即刚才说的键)存储到 cookie 中。另外我们又知道浏览器中 HTTP(s) 请求是会自动帮我们把 cookie 带上传给服务端的。这样在每次请求的时候通过 coo…
75CDN 是一个由奇舞团维护的静态资源托管平台,创立至今已经稳定运行了两年多的时间。近期我们增加了 ES Module 的支持,成为国内首个拥抱 ES Module 服务的静态资源库。 ES Module 是 ES6 中提出的规范,用于让 JavaScript 实现 import 导入模块的功能。其又细分为静态 import 和动态 import 两个特性,目前浏览器的支持情况如下: | 浏览器 | 静态 i…
什么是 SSRF 大家使用的服务中或多或少是不是都有以下的功能: 通过 URL 地址分享内容 通过 URL 地址把原地址的网页内容调优使其适合手机屏幕浏览,即所谓的转码功能 通过 URL 地址翻译对应文本的内容,即类似 Google 的翻译网页功能 通过 URL 地址加载或下载图片,即类似图片抓取功能 以及图片、文章抓取收藏功能 简单的来说就是通过 URL 抓取其它服务器上数据然后做对应的操作的功能。以 ThinkJS 代码为例,我…
遇到的问题 在小程序开发过程中,代码提交突然变成了一件非常头疼的事情。因为小程序的开发、编译、预览到最后的上传发布过程中,任何一步其实都和 Git 没有任何关系。所以之前自己一个人开发的时候,经常性的就忘记了 commit 代码,亦或是 commit 了但是没有对远端进行 push 操作。一个人开发的时候还好,多个人开发的时候再是这种操作习惯可就要把人坑惨了。 另外还有一个问题是,小程序的发布对 Git 没有强相关,所以对代码分支的要求…
代码调试按照调试方式大致分为**日志(Log)和断点(Breakpoint)**两种办法。其中日志就是手动的在代码中增加日志打印获取过程信息来判断问题。这种方法的好处是调试简单,一个对业务熟练的工程师通过线上良好的日志记录可以非常快的发现业务问题。但是它的缺点也非常明显,获取的内容比较单一,动态调试需要不断的在业务中增加日志打印代码。 于是乎断点调试出现了。断点调试类似于中医的望闻问切,我们通过在需要观察的点打上断点就能详细的获取到程序…
公司内部使用的是 Gitlab 仓库套件管理项目代码,之前把玩过的 Drone CI 是可以很好的支持 Gitlab 的,前提是需要在 Gitlab 中申请一个管理员权限的密钥方便其读取项目目录并设置 Webhook 等操作。而公司的 Gitlab 仓库权限管理很严格,我暂时还没有权限申请这个就只能放弃了。最近他们使用 Gitlab 8 (不要问我为什么是这么早的版本毕竟我们一直都在用7的)搭建了一个新的仓库,自带支持了 Gitlab …
话说最近真是流年不利,感觉各种BUG犹如天灾一样全部冒出来了,这不昨天又解了一个非常无语的问题,大概是关于换行和正则的臭虫,下面给大家吐槽一下。 数据“野”了 昨天同事反馈某个页面的数据没有正常显示,最开始我还以为是接口没有返回数据,结果看了下请求发现接口有正常的数据呀。没办法就一路反查回去,最后查到居然代码里接口请求抛错了?!因为定义了 Promise 的 catch 流程,所以也没有把错误抛出来。因为之前这个页面都是正常的,很久都没…
前段时间我开源了一个叫 Animaris 的项目,这个项目是使用 ThinkJS + MongoDB + React + Antd 开发的移动端 WebView 接口文档系统。平常大家见到的接口文档无非就是 HTTP API 接口文档,要么就是框架/库提供的接口方法文档。对于这种 WebView 的接口提供文档基本上没有。借着业务的需求我做了这么一个项目,用来解决以下两个问题: 移动端接口编写并生成可视化文档 移动端接口前端开发环境模…






