worker.py (1735B)
1 from cookies.resources.helpers import makeCookieHeader, readCookies, setNoCacheAndCORSHeaders 2 3 # Step 4/6 (workers/same-site-cookies/{}) 4 def main(request, response): 5 headers = setNoCacheAndCORSHeaders(request, response) 6 headers[0] = (b"Content-Type", b"text/javascript") 7 headers.append(makeCookieHeader(b"samesite_strict_set_on_load", b"test", {b"SameSite":b"Strict", b"path":b"/", b"Secure":b""})) 8 headers.append(makeCookieHeader(b"samesite_lax_set_on_load", b"test", {b"SameSite":b"Lax", b"path":b"/", b"Secure":b""})) 9 headers.append(makeCookieHeader(b"samesite_none_set_on_load", b"test", {b"SameSite":b"None", b"path":b"/", b"Secure":b""})) 10 cookies = readCookies(request) 11 message = b"ReadOnLoad:" 12 if b"samesite_strict_set_before_load" in cookies: 13 message += b"Strict" 14 if b"samesite_lax_set_before_load" in cookies: 15 message += b"Lax" 16 if b"samesite_none_set_before_load" in cookies: 17 message += b"None" 18 document = b""" 19 self.onconnect = (e) => { 20 fetch("/workers/same-site-cookies/resources/get_cookies_redirect.py", {credentials: 'include'}).then((resp) => { 21 resp.json().then((cookies) => { 22 let message = \"""" + message + b""",ReadOnFetch:"; 23 if (cookies.hasOwnProperty("samesite_strict_set_before_load")) { 24 message += "Strict"; 25 } 26 if (cookies.hasOwnProperty("samesite_lax_set_before_load")) { 27 message += "Lax"; 28 } 29 if (cookies.hasOwnProperty("samesite_none_set_before_load")) { 30 message += "None"; 31 } 32 e.ports[0].postMessage(message); 33 self.close(); 34 }); 35 }); 36 } 37 """ 38 return headers, document