tor-browser

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

file_downgrade_view_source.sjs (830B)


      1 "use strict";
      2 
      3 function handleRequest(request, response) {
      4   // avoid confusing cache behaviour
      5   response.setHeader("Cache-Control", "no-cache", false);
      6   response.setHeader("Content-Type", "text/html", false);
      7 
      8   let query = request.queryString.split("&");
      9   let scheme = request.scheme;
     10 
     11   if (scheme === "https") {
     12     if (query.includes("downgrade")) {
     13       response.setStatusLine("1.1", 400, "Bad Request");
     14       response.write("Bad Request\n");
     15       return;
     16     }
     17     if (query.includes("upgrade")) {
     18       response.write("view-source:https://");
     19       return;
     20     }
     21   }
     22 
     23   if (scheme === "http" && query.includes("downgrade")) {
     24     response.write("view-source:http://");
     25     return;
     26   }
     27 
     28   // We should arrive here when the redirection was downraded successful
     29   response.write("unexpected scheme and query given");
     30 }