Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!C:/ms4w/Python/python.exe
- #coding : utf-8
- #enable debugging
- # Designed to prevent Open Proxy type stuff.
- import urllib
- import urllib.parse
- import urllib3
- import cgi
- import sys, os
- """This is a blind proxy that we use to get around browser
- restrictions
- that prevent the Javascript from loading pages not on the
- same server as the Javascript. This
- has several problems: it's less
- efficient, it might break some sites, and it's a security risk
- because
- people can use this proxy to browse the web and possibly do bad stuff
- with it. It only
- loads pages via http and https, but it can load any
- content type. It supports GET and POST
- requests."""
- allowedHosts = [ 'www.openlayers.org', 'http://localhost/tinyows/demo/tinyows.html', 'www.openstreetmap.org']
- method = os.environ["REQUEST_METHOD"]
- if method == "POST":
- qs = os.environ["QUERY_STRING"]
- d = urllib.parse.parse_qs(qs)
- if "url" in d :
- url = d["url"][0]
- else:
- url = "http://www.openlayers.org"
- else:
- fs = cgi.FieldStorage()
- url = fs.getvalue('url', "http://www.openlayers.org")
- try:
- host = url.split("/")[2]
- if allowedHosts and not host in allowedHosts:
- print ("Status: 502 Bad Gateway")
- print ("Content-Type: text/plain")
- print
- print ("This proxy does not allow you to access that location (%s).") % (host,)
- print
- print (os.environ)
- elif url.startswith("http://") or url.startswith("https://"):
- if method == "POST":
- length = int(os.environ["CONTENT_LENGTH"])
- headers = {"Content-Type": os.environ["CONTENT_TYPE"]}
- body = sys.stdin.read(length)
- r = urllib3.Request(url, body, headers)
- y = urllib3.urlopen(r)
- else:
- y = urllib3.urlopen(url)
- # print content type header
- i = y.info()
- if "Content-Type" in i:
- print ("Content-Type: %s") % (i["Content-Type"])
- else:
- print ("Content-Type: text/plain")
- print
- print (y.read())
- y.close()
- else:
- print ("Content-Type: text/plain")
- print
- print ("Illegal request.")
- except Exception as e:
- print ("Status: 500 Unexpected Error")
- print ("Content-Type: text/plain")
- print
- print ("Some unexpected error occurred. Error text was:"), e
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement