idn.py (2786B)
1 # élève. 2 utf8_subdomain = b"Domain=\xC3\xA9\x6C\xC3\xA8\x76\x65." 3 # élève。 4 utf8_dot_subdomain = b"Domain=\xC3\xA9\x6C\xC3\xA8\x76\x65\xE3\x80\x82" 5 # élève. 6 punycode_subdomain = b"Domain=xn--lve-6lad." 7 # ÿlève. 8 wrong_utf8_subdomain = b"Domain=\xC3\xBF\x6C\xC3\xA8\x76\x65." 9 # ÿlève. 10 wrong_punycode_subdomain = b"Domain=xn--lve-6la7i." 11 # élève with invalid FF byte at the end 12 invalid_byte_subdomain = b"Domain=\xC3\xA9\x6C\xC3\xA8\x76\x65\xFF." 13 14 def main(request, response): 15 host = request.GET.get(b"host") 16 17 if b"set-utf8" in request.GET: 18 response.headers.append(b"Set-Cookie", b"utf8=set;" + utf8_subdomain + host) 19 response.content = "set" 20 if b"set-utf8-dot" in request.GET: 21 response.headers.append(b"Set-Cookie", b"utf8-dot=set;" + utf8_dot_subdomain + host) 22 response.content = "set" 23 elif b"set-wrong-utf8" in request.GET: 24 response.headers.append(b"Set-Cookie", b"wrong-utf8=set;" + wrong_utf8_subdomain + host) 25 response.content = "set" 26 elif b"set-punycode" in request.GET: 27 response.headers.append(b"Set-Cookie", b"punycode=set;" + punycode_subdomain + host) 28 response.content = "set" 29 elif b"set-wrong-punycode" in request.GET: 30 response.headers.append(b"Set-Cookie", b"wrong-punycode=set;" + wrong_punycode_subdomain + host) 31 response.content = "set" 32 elif b"set-invalid-byte" in request.GET: 33 response.headers.append(b"Set-Cookie", b"invalid-byte=set;" + invalid_byte_subdomain + host) 34 response.content = "set" 35 36 elif b"get" in request.GET: 37 if b"Cookie" in request.headers: 38 response.content = request.headers[b"Cookie"] 39 else: 40 response.content = "no cookies" 41 42 elif b"delete-utf8" in request.GET: 43 response.headers.append(b"Set-Cookie", b"utf8=unset;Max-Age=0;" + utf8_subdomain + host) 44 response.content = "delete" 45 elif b"delete-utf8-dot" in request.GET: 46 response.headers.append(b"Set-Cookie", b"utf8-dot=unset;Max-Age=0;" + utf8_dot_subdomain + host) 47 response.content = "delete" 48 elif b"delete-wrong-utf8" in request.GET: 49 response.headers.append(b"Set-Cookie", b"wrong-utf8=unset;Max-Age=0;" + wrong_utf8_subdomain + host) 50 response.content = "delete" 51 elif b"delete-punycode" in request.GET: 52 response.headers.append(b"Set-Cookie", b"punycode=unset;Max-Age=0;" + punycode_subdomain + host) 53 response.content = "delete" 54 elif b"delete-wrong-punycode" in request.GET: 55 response.headers.append(b"Set-Cookie", b"wrong-punycode=unset;Max-Age=0;" + wrong_punycode_subdomain + host) 56 response.content = "delete" 57 elif b"delete-invalid-byte" in request.GET: 58 response.headers.append(b"Set-Cookie", b"invalid-byte=unset;Max-Age=0;" + invalid_byte_subdomain + host) 59 response.content = "delete" 60 61 response.headers.append(b"Content-Type", b"text/plain")