Django, несколько запросов одновременно - PullRequest
0 голосов
/ 06 июля 2018

У меня есть middleware.py файл, который записывает IP-адрес на моем сайте.

x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
    ip = x_forwarded_for.split(',')[-1].strip()
else:
    ip = request.META.get('REMOTE_ADDR')

try:
    ip_address = IPAddress.objects.get(ip_address=ip,userprofile=up)
    # Here we can have MultipleObjectsReturned error
    # that's the issue Django emails me about
except IPAddress.DoesNotExist:
    ip_address = IPAddress(ip_address=ip,userprofile=up)

Из-за чего-то, что идет не так MultipleObjectsReturned, Django отправляет мне электронное письмо с сообщениями об ошибках. Но я вижу, что во всех электронных письмах многие запросы приходят с разных URL, и, как ни странно, одновременно 12: 20 вечера

Вот несколько URL-адресов:

my_domain/elastik
my_domain/digium
my_domain/Avaya
my_domain/Zyxel
my_domain/cisco.cfg
my_domain/SIPGateway
...

Как обычно, эти URL-адреса не существуют на моем веб-сайте, они предполагают создание страницы с ошибкой 404, но я сомневаюсь, почему в то же время? почему эти странные URL-адреса?

Мне нужно беспокоиться? или существует ли способ избежать такого поведения.

Я размещаю на DigitalOcean

1 Ответ

0 голосов
/ 06 июля 2018

Спасибо @Selcuk Я помню, что вы сказали о назначенной работе от другого владельца IP.

Возможное решение от @ Selcuk : У меня, вероятно, есть переработанный IP-адрес в DigitalOcean, а предыдущий владелец настроил запланированное задание, которое каждый день выполняет что-то в 12:20. подключается к этому IP. Создайте моментальный снимок и переместите службу в новую каплю

Я замечаю, что было не так. как @GrahamDumpleton сказал: Больше похоже на то, как бот сканирует ваш сайт, чтобы определить, не запускается ли у вас пакет с известной уязвимостью. Это верно, это было сканирование бота, благодаря user_agent пакет, который может быть установлен с pip

 >>> request.user_agent.is_bot 
 >>> True

У меня есть таблица с именем UserAgent, которая записывает все о каждом запросе

UserAgent.objects.get_or_create(
    is_mobile = request.user_agent.is_mobile,
    is_tablet = request.user_agent.is_tablet,
    is_touch_capable = request.user_agent.is_touch_capable,
    is_pc = request.user_agent.is_pc,
    is_bot = request.user_agent.is_bot,
    id_address = ip_address,
    is_active = True,
    '''
)

В этом случае не о чем беспокоиться

...