The goal of this course is to review common web security vulnerabilities and exploits, as well as their corresponding defenses. There is an inherent tension between "web as simple document reader" and "web as application environment", and as the functionality of the web ecosystem increases, so do the vulnerabilities.
General concepts that students will learn: principles of web security, attacks and countermeasures, the browser security model, web app vulnerabilities, injection, denial-of-service, TLS attacks, privacy, fingerprinting, same-origin policy, cross site scripting, authentication, JavaScript security, emerging threats, defense-in-depth, techniques for writing secure code, web archiving, rehosting.
Specific technologies that students will learn: Git/GitHub, DOM/Javascript, CLI, Node.js, Twitter, Youtube.
This course is based on CS 253 Web Security, Stanford, Fall 2019. Special thanks to Feross Aboukhadijeh for generously sharing his course materials (although any errors are mine).
-
Week 01 - Introduction and Administrivia, Document Object Model, Javascript, HTTP, Security fundamentals
- Git/GitHub 1, 2, 3
- Markdown 1, 2
- Node.js
- Document Object Model: Introduction to the DOM, Easy Way to Understand How the DOM Works
- JavaScript Crash Course, JavaScript DOM Crash Course Parts 1--4
- A Re-Introduction to JavaScript
- The Missing Semester of Your CS Education
- Inside look at modern web browser: 1, 2, 3
- Architecture of the World Wide Web, Volume One
- Class slides
-
Week 02 - Cookies, Sessions
-
Week 03 - Cross-Site Request Forgery, Same Origin Policy
-
Week 04 - Exceptions to the Same Origin Policy
-
Week 05 - Cross-Site Scripting (XSS)
-
Week 06 - XSS and Content Security Policy (CSP)
-
Week 07 - Fingerprinting and Privacy
-
Week 08 - Transport Layer Security
-
Week 09 - HSTS, Certificate Transparency
-
Week 10 - Authentication
-
Week 11 - Local HTTP Server Security
-
Week 12 - DNS rebinding attacks
-
Week 13 - UI Denial-of-service, Phishing, Side Channels
-
Week 14 - Thanksgiving -- no classes
-
Week 15 - Rehosting, Web Archiving
-
Week 16 - Exam
-
Weekly review of current events: #cs533f24
-
Assignment 1: Basics of HTML, Javascript, and Node
-
Assignment 2: Getting Started with Node.js, Express, and Cookies
-
Assignment 3: Cookie Report
-
Assignment 4: Frames
-
Assignment 5: Same-origin Policy, CORS, CSP
-
Assignment 6: Fingerprinting
- Due: December 2
-
Assignment 7: Phishing
- Due: December 13