全栈
2020-10-22 16:20:36 0 举报
AI智能生成
web全栈
作者其他创作
大纲/内容
刻意练习
定义明确目标
小而明确
smart原则
集中注意力
微信不开PC端
邮件定时收取
番茄工作法
反馈
分布调试
通过log去debug
脱离舒适区
不看笔记
只看视频
公众号开发
环境
内网穿透
ngrok
服务端
消息接口
服务器API接口
服务器API
token认证
获取
全局票据
mongodb
网页端
网页授权
OAuth2.0
jwt
JSSDK
Node
预习课
环境
运行
debug
nodemon
自动启动工具
ES6 babel
常用模块
核心
buffer
用于处理二进制数据流
alloc
from
write
contact
toString
module
模块操作
require
module.exports
process
不用require
内置
os
fs
path
http
event
不用install 需要require
第三方模块
流程控制
async await
promise
generater
callback
基础
Koa
网络编程
4/5 持久化
fs
mysql
native
squelize
关联
1 : 1
belongsTo + hasOne
1 : N
belongsTo + hasMany
N : N
belongsToMany
trough : 中间表
命名
蛇形命名
underscored : true
驼峰命名
默认
批量处理 + ETL
bulkCreate(record [, options])
ETL
SQL
INSERT INTO SELECT
权限设计数据库结构
jeecg
连接池与并发处理
连接池作用
省略了创建连接和销毁连接的过程
不适用
占用内存资源
服务器性能降低
代码对比
连接数
性能参数
事务处理和AOP事务管理
sequelize事务处理
https://segmentfault.com/a/1190000011583945#item-1-3
mysql innodb事务处理
中间件
https://www.npmjs.com/package/node-mysql-transaction
https://github.com/demopark/sequelize-docs-Zh-CN/blob/master/transactions.md
非常详细的文章
https://www.imweb.io/topic/56628e8bd91952db73b41f4f
实体关系模型实践
mongodb
native
mongoose
零编码方式
EventEmit
异步编程的四样解法
http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html
回调
发布订阅
事件监听
Promise 承诺运行
rxjs
鉴权
cookie + session 模式
session 源码实现
koa + cookie-session 模式
redis 全局session
token + jwt 模式
jwt 原理
koa + jwt
优势
密码学方式
服务器无状态变化
灵活
不依赖浏览器
cookie
跨域
扩展知识
OAuth2模式
github
SSO单点登录
eggjs MVC分层原理
Eggs
三层结构
MVC
约定优于配置
convention over configuration
软件设计范式
减少开发人员需要做决定的数量
简单不是灵活
实现一个MVC框架
MVC框架解释
eggjs更加实践
api接口文档
egg-swagger-doc-feat
restful服务
get
post
delete
put
表单校验
egg-validate
鉴权
jwt
egg-bcrytp
加密
egg-jwt
jwt token
生命周期函数
初始化数据
上传
鉴权
进度条
持久化
egg-mongoose
TypeScript与装饰器
TypeScript
类 Classes
接口 Interfaces
模块 Modules
类型注解 Type annotations 装饰器
装饰器
仅提供定义劫持,能够对类及其方法、方法入参、属性的定义 并没有提供任何附加元数据的功能
注解
供附加元数据支持,并不能实现任何操作。需要另外的Scanner根据元数据执行相应操作
编译时类型检查 Compile time type checking
箭头函数 Arrow
Lambda 表达式
装饰器
类装饰
方法装饰
AOP功能
https://www.cnblogs.com/winfred/p/8216650.html
架构
router
validattion
注册中间件
AOP
models
项目
https://github.com/lichangwei/koa-router-decorators
驱动化模块架构
nodejs + ts总结
https://www.cnblogs.com/xuanmanstein/p/9887527.html
装饰器模式与装饰器的联系
https://www.jianshu.com/p/398f0e8f2699
10 部署_Docker_自动化部署
常规
阿里云ECS
ssh 公私钥
sftp上传
webstore同步插件
nginx
域名解析
nodejs
mongoodb
pm2
cluster 模块
docker
docker 基础
基本操作
定制镜像
docker-compore
部署一个前后端分离项目
github webhooks 自动部署
http缓存
网络安全
常见Web攻击
XSS
定义
跨站脚本攻击
跨站脚本攻击,因为缩写和CSS重叠,所以只能叫XSS。跨站脚本攻击是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的非本站点的HTML标签或JavaScript进行的一种攻击
危害
利用虚假输入表单骗取用户的个人信息
利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求
显示伪造的文章或图片
防御
HEADER
X-XSS-Protection
CSP
Content-Security-Policy: default-src 'self'
只允许加载本站资源
Content-Security-Policy: img-src https://
只允许加载https协议图片
Content-Security-Policy: child-src 'none'
不允许加载任何来源框架
转义字符
黑名单
白名单
CSRF
定义
Cross Site Request Forgery
即跨站请求伪造
一种常见的Web攻击,他利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作
危害
利用用户登录态在用户不知情的情况下 完成业务请求
防御
禁止第三方网站携带cookie
Refer Check
验证码
Click injecting
定义
点击劫持
点击劫持是一种视觉欺骗的攻击手段。攻击者将需要攻击的网站通过 iframe 嵌套的方式嵌入自己的网页中,并将 iframe 设置为透明,在页面中透出一个按钮诱导用户点击。
危害
利用用户登录态在用户不知情的情况下 完成业务请求
防御
JS方式 iframe禁止
X-FRAME-OPTIONS
SQL注入
定义
把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器达到执行恶意的SQL命令
防御
参数化的语义
数据库权限限制
SQL特殊字符检测
请求劫持
定义
DNS服务器(DNS解析的各个步骤)被篡改,修改了域名解析的结果,使得访问到的不是预期的ip
防御
HTTPS
DDOS
定义
distributed denial of service
分布式访问拒绝攻击
防御
备份网站
带宽扩容
靠谱运营商
高仿IP
请求劫持
防御手段
密码安全
密码学
对称
DES
非对称
RSA
摘要
SHA1
MD5
传输安全
HTTPS
身份验证
加密传输
NodeJS安全框架
helmet
Strict-Transport-Security
强制使用安全连接
X-Frame-Options
点击劫持保护
X-XSS-Protection
跨站脚本攻击
X-Content-Type-Options
组织浏览器使用 MIME-sniffing
Content-Security-Policy
防止受到跨站脚本攻击以及其它跨站注入攻击
CSP策略
0 条评论
下一页