跨端与安全 | 青训营笔记

44 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第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注入,提供好注入语句