这是我参与「第四届青训营」笔记创作活动的第5天
关于前端开发
- 起源、架构、变迁
-只读时代1989-2004
-体验时代2005-2010
-敏捷时代2010-2021 - 前端应用的领域
-To Business
-To Customer
-To Developer - 语言、框架、工具
-HTML(structure)
-CSS(presentation/appearance)
-JavaScript(dynamism/action) - 前端学习路线图
关于Web标准
- 了解Web标准组织
-W3C:World Wide Web Consortium
-Ecma:Ecma International
-WHATWG:Web Hypertext Application Technology Working Grop
-IETF:Internet Engineering Task Force - W3C与Ecma会员
-W3C目前在全球有457家会员(link),其中北航总部(中国区)会员47家(link)
-Ecma的AM(Associate Member)会员目前有18家,中国公司有字节跳动、360、阿里、华为、腾讯等5家(link) - W3C规范制定流程
-Explainer demo
-Find the right community/group
-Web IDL for APIs link
-Step-by-step algorithms
-GitHub,Markdown,respec,bikeshed,etc
-Get an early review w3ctag/design-reviews
-Write web-platform-tests(WPT)tests - TC39流程
-Championing a proposal at TC39
-How to write a good explainer
-Presenting a Proposal to TC39
-Reading a proposal draft
-Stage 3 Proposal Reviews
-How to experiment with a proposal before Stage 4
-Implementing and shipping TC39 proposals - 如何参与--关注会议
-W3C会议
年度大会:AC(Advisory Committee)、TPAC(Technical Plenary and Advisory Committee)
工作组会议:每月会议、各种研讨会
-Ecma会议 年度大会:GA(General Assembly)
TC39会议:每1-2个月
Web安全
安全问题“很常见”,会危害用户、公司、程序员
两个角度看web安全
- 假如你是一个hacker——攻击
-Cross-Site Scripting(XSS)跨站脚本攻击XSS
特点:通常难以从UI上感知(暗地执行脚本)、窃取用户信息(cookie/token)、绘制UI(例如弹窗,诱骗用户点击/填写表单)
分类:Stored XSS(存储型XSS攻击)、Reflected XSS(反射性XSS攻击)、DOM-based XSS(基于DOM的XSS攻击)、Mutation-based XSS(基于Mutation的XSS攻击)
-Cross-site request forgery(CSRF)跨站伪造请求
特点:在用户不知情的前提下、利用用户权限(cookie)、构造指定HTTP请求,窃取或修改用户敏感信息
分类:GET请求
-Injection(注入攻击)
分类:SQL Injection、CLI、OS command、Service-Side Request Forgery(SSRF)
-Denial of Service(DoS)服务拒绝
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应等多请求,导致请求挤压,进而雪崩效应
-Distributed DoS (DDoS)
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求
特点:直接访问IP、任意API、消耗大量带宽(耗尽)
-中间人攻击
明文传输、信息篡改不可知、对方身份未验证 - 假如你是一个开发者——防御
-XSS:永远不信任用户的提交内容、不要将用户提交内容直接转换成DOM
-CSP:哪些源(域名)被认为是安全的、来自安全源的脚本可以执行,否则直接抛错、对eval+inline script说不
-Injection beyond SQL:最小权限原则、建立允许名单+过滤、对URL类型参数进行协议、域名、ip等限制
-DDOS:流量治理、快速自动扩容、非核心服务降级
HTTPS的一些特点:可靠性加密、完整性MAC验证、不可抵赖性数字签名 - 安全无小事
- 使用的依赖可能成为最薄弱的一环
- 保持学习心态