这是我参与「第五届青训营 」笔记创作活动的第7天
作为个人笔记使用
hybrid方案 基于webview渲染,通过js bridge把一部分系统能力开放
原生渲染 使用js开发,通过中间层桥接后使用原生组件来渲染
如react native
自渲染 利用skia重新实现渲染管线
小程序DSL+JS开发,通过中间层桥接后调用原生能力,使用webview来渲染UI界面
启动性能优化:
减少包体积(合理使用分包,移除无用文件,控制包内静态资源)
合理缓存数据(网络数据缓存,API数据缓存)
减少同步逻辑(优先使用异步API)
图片优化(使用别的图片格式,合理压缩,CDN缓存)
更早展示首屏数据(尽早调用API和请求,数据预请求)
框架骨架屏和占位组件
运行时性能优化:
内存优化(及时解绑定时器和事件监听)
合理使用组件拆分
防抖节流
存储型XSS,恶意脚本被存在数据库中,访问数据会被攻击,危害最大,对全部用户可见
反射型XSS,拼接出恶意的URL ,处于服务端完成
DOM型XSS, 不需要服务器参与,在浏览器端完成
Mutationbased XSS 利用不同浏览器渲染dom的特性(防止过滤工具检测)
CSRF
在用户不知情的前提下,利用用户权限(cookie),构造指定HTTP请求,窃取或修改用户敏感信息
如用户没有访问某页面,但某页面接口被盗用的用户权限访问
SQL注入
发起请求,恶意注入参数,服务端运行参数中的SQL语句,运行SQL code,从而获取修改删除数据
DDOS大量僵尸设备访问IP
多次发起TCP连接请求进行SYN 洪水攻击
没有完成connection不能被释放,达到最大连接数,不能建立新连接
内容安全策略CSP
防止跨域去请求
防止CSRF
iframe是同源的请求,可以用X-Frame-Options:DENY/SAMEORIGIN响应头部来回避
服务器端可以配置
Set-Cookie: SameSite=None;Secure
SameSite控制cookie发送
使用prepared statement防止sql注入,提供好注入语句