SameSite 那些事

2021-06-11
阅读 5 分钟
11.5k
在《Web 安全漏洞之 CSRF》中我们了解到,CSRF 的本质实际上是利用了 Cookie 会自动在请求中携带的特性,诱使用户在第三方站点发起请求的行为。除了文中说的一些解决方式之外,标准还专门为 Cookie 增加了 SameSite 属性,用来规避该问题。Chrome 于 2015 年 6 月支持了该属性,Firefox 和 Safari 紧随其后也增加了支持...
封面图

一道面试题让你更加了解事件队列

2021-03-13
阅读 3 分钟
2.5k
该题定义了一个同步函数对传入的数组进行遍历乘二操作,同时每执行一次就会给 executeCount 累加。最终我们需要实现一个 batcher 函数,使用其对该同步函数包装后,实现每次调用依旧返回预期的二倍结果,同时还需要保证 executeCount 执行次数为1。
封面图

基于 Serverless 的 Valine 可能并没有那么香

2020-11-16
阅读 4 分钟
7k
Valine 是一款样式精美,部署简单的评论系统, 第一次接触便被它精美的样式,无服务端的特性给吸引了。它最大的特色是基于 LeanCloud 直接在前端进行数据库操作而无需服务端,极大的缩减了部署流程,仅需要在静态页引入 Valine SDK 即可。

常见登录鉴权方案

2020-11-02
阅读 6 分钟
6.4k
编者注:今天我们分享的是卢士杰同学整理的网站常用鉴权方案的实现原理与实现以及他们的适用场景,帮助大家在业务中做合适的选择。背景说起鉴权大家应该都很熟悉,不过作为前端开发来讲,鉴权的流程大头都在后端小哥那边,本文的目的就是为了让大家了解一下常见的鉴权的方式和原理。认知:HTTP 是一个无状态协议,所以客...

Drone 自定义 UI

2020-10-26
阅读 3 分钟
2.8k
Drone 是一款开源的 CI/CD 工具,基于容器提供了强大的插件系统。多年前我有写过《基于Docker的CI工具——Drone》中有详细的介绍它的优点。Drone 采用的是 Server/Agent 架构,Server 端用来处理请求派发任务给 Agent,最终在 Agent 上执行任务。

如何使用 ThinkJS 优雅的编写 RESTful API

2020-09-28
阅读 7 分钟
12k
RESTful 是目前比较主流的一种用来设计和编排服务端 API 的一种规范。在 RESTful API 中,所有的接口操作都被认为是对资源的 CRUD,使用 URI 来表示操作的资源,请求方法表示具体的操作,响应状态码表示操作结果。之前使用 RESTful 的规范写过不少 API 接口,我个人认为它最大的好处就是帮助我们更好的去规划整理接口,...

谈谈 MySQL 的 JSON 数据类型

2020-09-14
阅读 10 分钟
29.8k
MySQL 5.7 增加了 JSON 数据类型的支持,在之前如果要存储 JSON 类型的数据的话我们只能自己做 JSON.stringify() 和 JSON.parse() 的操作,而且没办法针对 JSON 内的数据进行查询操作,所有的操作必须读取出来 parse 之后进行,非常的麻烦。原生的 JSON 数据类型支持之后,我们就可以直接对 JSON 进行数据查询和修改等操...

think-mongo 升级适配 MongoDB 4

2020-06-25
阅读 3 分钟
2.4k
今天是端午节,首先祝大家端午节快乐,然后今天要和大家说一下最近对 think-mongo 模块做了一些升级。ThinkJS 3 虽然已经支持使用 think-mongoose 来接入 mongoose 模块,不过因为文档这块默认还是 think-mongo 所以用这个模块的同学还是比较多。而这个模块因为是两三年前开发的了,依赖的 mongodb 模块一直是 2.x 的版...

使用 pkg 打包 ThinkJS 项目

2019-12-30
阅读 5 分钟
4.5k
在 ThinkJS 的用户群里,经常有开发者提出需要对源码进行加密保护的需求。我们知道 JavaScript 是一门动态语言,不像其他静态语言可以编译成二进制包防止源码泄露。所以就出现了 pkg、nexe 之类的工具,支持将 JS 代码连同 Node 一块打包成一个可执行文件,一来解决了环境依赖的问题,二来解决了大家关心的源码保护的问题。

如何将你的 ThinkJS 项目部署到 ZEIT 上

2019-12-02
阅读 5 分钟
3.5k
ZEIT 是免费的云平台,支持部署静态网站以及 Serverless 函数。Serverless 是近几年比较火的概念,简单去理解就是你只需要去实现具体的业务逻辑,而与最终服务相关的服务器、HTTP 服务等则由第三方管理。Serverless 又被称为 FaaS(函数即服务),由于业务粒度非常细,所以非常方便做动态扩容等自动化运维任务。

教你在 Node.js 项目中接入 Sign with Apple 第三方登录

2019-10-30
阅读 9 分钟
4k
在 WWDC19 大会上,苹果公司推出了一项有意思的内容,即 “Sign In with Apple”。这项由苹果提供的认证服务,可以让开发者允许用户使用 Apple Id 来登录他们的应用程序,Sign In with Apple使用OAuth登录授权标准。

WEB 安全漏洞之目录遍历

2019-08-28
阅读 1 分钟
7.8k
第一次接触到目录遍历漏洞还是在 ThinkJS 2 的时候。代码如下图,目的是当用户访问的 URL 是静态资源的时候返回静态资源的地址。其中 pathname 就是用户访问的 URL 中的路径,我们发现代码中只是简单的解码之后就在22行将其与资源目录做了拼接,这就是非常明显的目录遍历漏洞了。

奇虎360奇舞团负责人月影确认出席第5届FEDAY(前端大会)

2019-08-28
阅读 1 分钟
2.6k
第5届FEDAY(前端大会)将于2019年9月21日在成都鹏瑞利广场三楼金逸影城IMAX举办。 本次大会网站及抢票地址:[链接] 奇虎360 主任架构师、高级技术总监,奇舞团负责人月影确认出席第5届FEDAY(前端大会)。我们一起来看看月影的介绍和他将在大会给大家带来什么演讲内容: 吴亮(月影) 吴亮(月影),十年踪迹,奇虎360 ...

不到 0.3s 完成渲染!360 信息流正文“闪开”优化实践

2019-07-29
阅读 4 分钟
7.3k
开篇之前先介绍一下场景。信息流是一个基于用户兴趣使用算法将用户感兴趣的新闻内容推荐给用户的一种业务。这种业务带有非常特色的场景就是用户有一个“永远”都刷不完的推荐流列表,点击列表中的新闻之后可以跳转到其详情页中查看新闻的正文内容。列表一般都是由客户端原生去实现的,而详情页这块由于新闻内容结构的复杂...

Web 安全漏洞之文件上传

2019-07-01
阅读 3 分钟
8.8k
文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器上,当开发者没有对该文件进行合理的校验及处理的时候,很有可能让程序执行这个上传文件导致安全漏洞。大部分网站都会有文件上传的功能,例如头像、图片、视频等,这块的逻辑如果处理不当,很容易触发服务器漏洞。这种漏洞在以文件名为 URL 特征的程序中比较多...

基于 ThinkJS 的 WebSocket 通信详解

2019-06-12
阅读 9 分钟
3.5k
我们的项目是基于 ThinkJS + Vue 开发的,最近实现了一个多端实时同步数据的功能,所以想写一篇文章来介绍下如何在 ThinkJS 的项目中利用 WebSocket 实现多端的实时通信。ThinkJS 是基于 Koa 2 开发的企业级 Node.js 服务端框架,文章中会从零开始实现一个简单的聊天室,希望读者们能有所收获。

第三届VueConf来啦,尤雨溪将出席!

2019-05-13
阅读 1 分钟
5k
第三届 VueConf 将于2019年6月8日在上海交通大学徐家汇校区举办,本次大会Vue.js作者尤雨溪将亲临现场给大家带来主题演讲。除此之外,大会邀请了行业内多位演讲嘉宾出席本次大会,并发表演讲。

What's New in JavaScript

2019-05-11
阅读 6 分钟
7.4k
前几天 Google IO 上 V8 团队为我们分享了《What's New in JavaScript》主题,分享的语速很慢推荐大家可以都去听听就当锻炼下听力了。看完之后我整理了一个文字版帮助大家快速了解分享内容,嘉宾主要是分享了以下几点:

使用 Puppeteer 导出声享 PPT

2019-03-18
阅读 4 分钟
2.7k
声享是一个基于 ThinkJS 开发的在线制作 PPT 平台。声享制作的 PPT 支持代码高亮、图片上传、神奇效果等功能,同时你可以在声享收藏自己喜欢的 PPT 、对自己的 PPT 进行分类管理。其中有一个 PDF 导出的功能,可以将自己制作的 PPT 导出成 PDF 保存到本地。

如何解析你,Excel的Date呀

2018-12-06
阅读 3 分钟
5k
简单的背景介绍 不久前,我们接了一个自己做前端后端产品的活,从此过上了可怜巴巴敲代码开开心心收获知识的日子呢。 那是一个平平无奇的周一下午 用户小姐姐在群里说,系统筛选工卡有效期不好使。(系统:不不不,不是我的锅 我看了一下数据库,发现,我们原定的有效期格式是这样的 整整齐齐。 数据库中当时的数据是这...

Web 安全漏洞之 XSS 攻击

2018-11-19
阅读 4 分钟
10.6k
编者说:作为JS系工程师接触最多的漏洞我想就是 XSS 漏洞了,然鹅并不是所有的同学对其都有一个清晰的认识。今天我们请来了@卢士杰 同学为我们分享他眼中的 XSS 漏洞攻击,希望能帮助到大家。

ThinkJS 项目构建 Docker 镜像

2018-05-20
阅读 3 分钟
3k
其实这个话题很简单,不是很想写这篇文章。不过的确还是有很多朋友在打包构建部署上存在一些问题,恰巧最近使用 Docker 部署了几个 ThinkJS 相关的项目,所以还是拿出来说说吧。需要提前说明的是本文并不是 Docker 的基础教程,默认大家都是了解 Docker 的。然后我会分享一下我觉得 ThinkJS 项目构建和部署过程中可能需...

Web框架的常用架构模式(JavaScript语言)

2018-05-16
阅读 6 分钟
3.7k
科学作为一种经验主义的认识论,有着经验主义的巨大缺陷:它永远不能产生绝对正确的真理。这是归纳法的本质决定的。而且值得注意的是,归纳不具有唯一性。

ThinkJS3 升级小记

2018-03-04
阅读 5 分钟
4.9k
ThinkJS3 距离初次发布已有半年的时间,最近花了点时间将 Firekylin 的依赖从 ThinkJS2 升级到 ThinkJS3。这里记录一下升级碰到的一些变化,希望能帮助到大家。

基于 ThinkJS 的文件上传(普通上传,文件预览,压缩上传,分片上传)

2018-01-24
阅读 1 分钟
5.1k
具体实现参见:demo 实现原理简介 上传:FormData + ajax 文件预览 canvas 读取生成 image 压缩图片上传: 原理 canvas.toDataURL实现压缩 实现 FileReader读取文件内容转为img --> canvas读取img --> 输出压缩后的img --> 转为 Blob 对象上传 分片上传: 原理 利用 file.slice 将文件分片 实现 客户端:文件分...

ThinkJS 3.0 如何实现对 TypeScript 的支持

2017-11-15
阅读 6 分钟
3.6k
ThinkJS 3.0 是一款面向未来开发的 Node.js 框架,内核基于 Koa 2.0。 3.0 相比 2.0 版本进行了模块化改造,使得内核本身只包含了最少量必须的代码,甚至还不足以构成一个完整的 Web MVC 框架,除了内核里面实现的 Controller, View 和 Model 被实现为扩展(Extend)模块 think-view 和 think-model,这样实现的好处也...

ThinkJS 3.0 正式版发布!

2017-09-04
阅读 2 分钟
7k
ThinkJS 是一款拥抱未来的 Node.js Web 框架,致力于集成项目最佳实践,规范项目让企业级团队开发变得更加简单,更加高效。我们的 Github 地址是:[链接] 欢迎大家 star~