Se você está tentando construir um site seguro, a configuração de https é a primeira etapa.
Com o Django, se você estiver usando coisas assim HttpRedirectRequest
, logo descobrirá que, por padrão, elas redirecionarão para o antigo http, que chatice.
Felizmente, existe uma maneira fácil de corrigir isso. Basta definir sua variável de ambiente HTTPS como “on”
Com o heroku você pode adicioná-lo assim
heroku config:add HTTPS=on
Ou você pode simplesmente adicioná-lo ao topo do seu arquivo wsgi.py assim
os.environ['HTTPS'] = "on"
Mais uma observação importante , certifique-se de que DEBUG seja False em settings.py ou isso não funcionará!
DEGUG = False
Além disso, se você estiver usando o heroku, seu proxy http reverso quebra, o request.is_secure
que quebra outras coisas. O mais óbvio será que APPEND_SLASH = True
isso é outra chatice. Felizmente, existe uma solução fácil. Basta adicionar a settings.py
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https',)
via https://twitter.com/chuckharmston/status/225857111157006336 outras correções em https://github.com/allanlei/django-heroku-helpers
Isso foi tirado de uma ótima postagem em http://security.stackexchange.com/a/8970/17658