tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

cookieServer.sjs (1103B)


      1 /* Any copyright is dedicated to the Public Domain.
      2  * http://creativecommons.org/publicdomain/zero/1.0/
      3  */
      4 
      5 // A 1x1 PNG image.
      6 // Source: https://commons.wikimedia.org/wiki/File:1x1.png (Public Domain)
      7 const IMAGE = atob(
      8   "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAA" +
      9     "ACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII="
     10 );
     11 
     12 function handleRequest(request, response) {
     13   response.setStatusLine(request.httpVersion, 200);
     14   if (
     15     request.queryString &&
     16     request.queryString.includes("type=image-no-cookie")
     17   ) {
     18     response.setHeader("Content-Type", "image/png", false);
     19     response.write(IMAGE);
     20   } else if (
     21     request.queryString &&
     22     request.queryString.includes("type=partitioned")
     23   ) {
     24     response.setHeader("Access-Control-Allow-Origin", "https://example.net");
     25     response.setHeader("Access-Control-Allow-Credentials", "true");
     26     response.setHeader(
     27       "Set-Cookie",
     28       "foopy=1; SameSite=None; Secure; Partitioned"
     29     );
     30   } else {
     31     response.setHeader("Set-Cookie", "foopy=1");
     32     response.write("cookie served");
     33   }
     34 }