20s-2550: L23 Web Exploits
Materials
You can use the L23 slides (pdf) to take notes.
L23 annotated slides (pdf) from lecture have my drawings.
Please see piazza@439 for a link to the recorded video.
Summary
-
How does HTTP work? It is a stateless protocol that runs over TCP (and TLS) consisting of a handful of commands, such as GET, POST, etc. It is mainly used to transfer HTML (hypertext markup language) documents.
-
HTML pages are hierarchical and can be abstracted into a DOM (document object model), javascript is a scripting language that runs in the same context as an HTML page. The javascript can manipulate or change the DOM to allow for basic interaction on a webpage. This Javascript also introduces security vulnerabilities.
-
Important goals for browser design is to support strong isolation. What does this mean?
-
The principle method for isolation is based on a “same origin policy” for pages. A page can only access/manipulate resources that belong to the same origin (with a small number of exceptions).
-
Although HTTP is stateless, the “web experience” usually requires sessions and state. (Give a concrete example why.) Implementing state can be done in many ways, but browser cookies are the most popular.
-
How does a cookie work? Your browser receives instructions from an HTTP server to set a cookie; on future fetch requests to that same origin, your browser automatically includes all cookies for that origin.
-
Handling cookie authentication, etc., is important. For one, cookie information that handles session management should be unpredictable to an attacker. What crypto primitives can be used to achieve this property?
-
This cookie processing introduces an attack: the cross-site request forgery attack.