Sascuash
Sascuash

Reputation: 3831

How to know using Django if server is secure (uses https)

I work on a Django based app, and I want to know if there's a way to know if my server uses http connections or https.

I know that using

import socket
if socket.gethostname().startswith('****'):

I can get the hostname, is it possible to do something like that so I can get to know if the hosting uses a ssl certificate?

PD: I'm a rookie here, so I'm asking to see if it's possible and, if it is, how should I do it. Thanks

Upvotes: 5

Views: 6809

Answers (3)

Pedro Walter
Pedro Walter

Reputation: 631

it's completely possible:

def some_request_function(request):
    if request.is_secure():
        #You are safe!
    else:
        #You are NOT safe!

More details: https://docs.djangoproject.com/en/2.0/ref/request-response/#django.http.HttpRequest.is_secure

Upvotes: 15

Ludwik Trammer
Ludwik Trammer

Reputation: 25022

There simply is an is_secure() method on the request object, returning True if the connection is secure.

Depending on your specific server configuration you may also need to set SECURE_PROXY_SSL_HEADER in your settings.

Upvotes: 4

dm03514
dm03514

Reputation: 55952

django requests (HttpRequest) have is_secure method:

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.is_secure

Upvotes: 3

Related Questions