Beispiel #1
0
def HostKiller(next, logger, reqdata, environ):
	uh = httputil.hostFromEnv(environ)
	if uh and not valid_host(uh):
		environ['dwiki.logger'].warn("rejected invalid Host: value from request URI: %s" % repr(uh))
		return httputil.genError("sec-error", 403)
	gh = getHost(environ)
	if not valid_host(gh):
		environ['dwiki.logger'].warn("rejected invalid Host: value from Host: header: %s" % repr(gh))
		return httputil.genError("sec-error", 403)
	return next(logger, reqdata, environ)
Beispiel #2
0
def HostFixer(next, logger, reqdata, environ):
	uh = httputil.hostFromEnv(environ)
	if uh:
		# TODO: updating environ is the sign of a hack.
		environ['HTTP_HOST'] = uh
		reqdata['server-name'] = uh
		if environ.get('HTTPS') == "on":
			reqdata['server-url'] = "https://%s" % uh
		else:
			reqdata['server-url'] = "http://%s" % uh
	return next(logger, reqdata, environ)