Функция проектирования Django для проверки 500 ошибок на предмет неверного хоста и блокировки IP - PullRequest
0 голосов
/ 16 марта 2019

Я получаю ботов, которые намеренно пытаются найти уязвимости в моем IP-адресе, и мне нужно вручную заблокировать IP-адреса.

Например, это начало ошибки, отправленной на мою электронную почту.по django

Invalid HTTP_HOST header: '68.183.112.215'. You may need to add '68.183.112.215' to ALLOWED_HOSTS.

Report at /.well-known/security.txt
Invalid HTTP_HOST header: '68.183.112.215'. You may need to add '68.183.112.215' to ALLOWED_HOSTS.

Request Method: GET
Request URL: https://68.183.112.215/.well-known/security.txt

Мне нужно знать, что тип ошибки недействителен HTTP_HOST, а затем с указанным IP-адресом

HTTP_X_REAL_IP = '198.20.70.114'

проанализировать это поле, чтобы получить IP

Я думаю, что это должно работать

def handler500(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')

    #check if Invalid HTTP_HOST header
    #if so run script to add ip to blocked ip's

    #if possible let the normal 500 error to be raised
    ....

    #otherwise raise custom error

Если я могу выяснить тип ошибки, то я могу попробовать это.Надоело делать это вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...