За последние 24 часа нас посетили 17088 программистов и 1345 роботов. Сейчас ищут 1495 программистов ...

Работа страницы с ajax-запросами только в одной вкладке.

Тема в разделе "PHP для новичков", создана пользователем eldor, 17 май 2018.

  1. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Подскажите, пожалуйста, как правильно разрешить работу в одном браузере только в одной вкладке странице, которая имеет ajax-запросы, которые в свою очередь дёргают сервер каждую секунду по счетчику? Т.е., когда пользователь открывает более одной вкладки в этом же браузере данной страницы с ajax-запросами, то его должно перенаправлять на другую страницу сайта или, как вариант, закрывать данную вкладку.

    У меня есть пару мыслей-костылей как решить данную задачу, но они мне кажутся сомнительными:
    1. Сделать с помощью сессии и записи в БД рандомного кол-ва символов. И далее их сравнивать при новом обращении ajax. Если совпадают, то заново создаём рандомное кол-во символов, пишем их в БД, а если не совпадают, то перенаправить на другую страницу.
    2. Второй вариант более извращённый - использовать ресурсы iptables. Т.е. для начала подсчитать примерное максимальное значение пакетов в единицу времени, которые приходят с определенного ip (или mac) адреса, умножить его на 3-5, а далее что больше указанного кол-ва - DROPать. А на кол-во открываемых вкладок на одну и ту же страницу с ajax не обращать внимание.
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    а если юзер откроет сайт с разных вкладок разных браузеров?
    какой смысл в таком ограничении?
     
  3. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Это нужно для того, чтобы один пользователь не мог сильно нагружать сервер с помощью открытия множества вкладок в одном браузере.

    Это как раз предусматривается и разрешается проектом.