tor-browser

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

set-cookies-samesite_wsh.py (891B)


      1 import urllib
      2 
      3 
      4 def web_socket_do_extra_handshake(request):
      5    url_parts = urllib.parse.urlsplit(request.uri)
      6    max_age = ""
      7    if "clear" in url_parts.query:
      8        max_age = "; Max-Age=0"
      9    value = "1"
     10    if "value" in url_parts.query:
     11        value = urllib.parse.parse_qs(url_parts.query)["value"][0]
     12    cookies = [
     13        "samesite-unspecified={}; Path=/".format(value) + max_age,
     14        "samesite-lax={}; Path=/; SameSite=Lax".format(value) + max_age,
     15        "samesite-strict={}; Path=/; SameSite=Strict".format(value) + max_age,
     16        # SameSite=None cookies must be Secure.
     17        "samesite-none={}; Path=/; SameSite=None; Secure".format(value) + max_age
     18    ]
     19    for cookie in cookies:
     20        request.extra_headers.append(("Set-Cookie", cookie))
     21 
     22 
     23 def web_socket_transfer_data(request):
     24    # Expect close() from user agent.
     25    request.ws_stream.receive_message()