Fixed a referer leak

This commit is contained in:
Raphael Michel
2016-09-14 10:34:20 +02:00
parent 5c791e7fab
commit f128a5f559
5 changed files with 35 additions and 2 deletions

View File

@@ -0,0 +1,19 @@
import urllib.parse
from django.core import signing
from django.core.urlresolvers import reverse
from django.http import HttpResponseBadRequest, HttpResponseRedirect
def redir_view(request):
signer = signing.Signer(salt='safe-redirect')
try:
url = signer.unsign(request.GET.get('url', ''))
except signing.BadSignature:
return HttpResponseBadRequest('Invalid parameter')
return HttpResponseRedirect(url)
def safelink(url):
signer = signing.Signer(salt='safe-redirect')
return reverse('redirect') + '?url=' + urllib.parse.quote(signer.sign(url))