Instructor: Michael L. Nelson mln@cs.odu.edu
Office Hours: Thursdays 3-4 and by appointment
Time: Thursdays 4:20pm - 7:00pm
Place: online -- contact mln@cs.odu.edu for the Zoom URL.
Class Email list: https://groups.google.com/group/cs595-s21
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 - January 21 - 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 - January 28 - Cookies, Sessions
-
Week 03 - February 4 - Cross-Site Request Forgery, Same Origin Policy
-
Week 04 - February 11 - Exceptions to the Same Origin Policy
-
Week 05 - February 18 - Cross-Site Scripting (XSS)
-
Week 06 - February 25 - XSS and Content Security Policy (CSP)
-
Week 07 - March 4 - Fingerprinting and Privacy
-
Week 08 - March 11 - (no class)
-
Week 09 - March 18 - Transport Layer Security
-
Week 10 - March 25 - HSTS, Certificate Transparency
-
Week 11 - April 1 - Authentication
-
Week 12 - April 8 - Local HTTP Server Security
-
Week 13 - April 15 - DNS rebinding attacks
-
Week 14 - April 22 - UI Denial-of-service, Phishing, Side Channels
-
Week 15 - April 29 - Rehosting, Web Archiving
-
Week 16 - May 6 - Exam