Instructor: Michael L. Nelson mln@cs.odu.edu
Office Hours: Wednesdays 2-4 and by appointment
Time: Wednesdays 4:20pm - 7:00pm
Place: online to start the semester -- contact mln@cs.odu.edu for the Zoom URL.
Class Email list: https://groups.google.com/group/cs533-f23
CRNs: 23043, 23044, 23045 (433) and 23046, 23047, 23048 (533)
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 - August 30 - 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 - September 6 - Cookies, Sessions
-
Week 03 - September 13 - Cross-Site Request Forgery, Same Origin Policy
-
Week 04 - September 20 - Exceptions to the Same Origin Policy
-
Week 05 - September 27 - Cross-Site Scripting (XSS)
-
Week 06 - October 4 - XSS and Content Security Policy (CSP)
-
Week 07 - October 11 - Fingerprinting and Privacy
-
Week 08 - October 18 - Transport Layer Security
-
Week 09 - October 25 - HSTS, Certificate Transparency
-
Week 10 - November 1 - Authentication
-
Week 11 - November 8 - Local HTTP Server Security
-
Week 12 - November 15 - DNS rebinding attacks
-
Week - November 22 - Thanksgiving -- no classes
-
Week 13 - November 29 - UI Denial-of-service, Phishing, Side Channels
-
Week 14 - December 6 - Rehosting, Web Archiving
-
Week 15 - December 13 - Exam
-
Weekly review of current events: #cs533f23
-
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: November 29
-
Assignment 7: Phishing
- Due: December 13