LINUX.ORG.RU
ФорумAdmin

Защита от зажатия F5

 


1

2

Nginx и PHP-FPM Подскажите как реализовать защиту от зажатия клавишы F5

С одного IP могут работать до 100 пользователей



Последнее исправление: sdllll (всего исправлений: 2)
Ответ на: комментарий от julixs

Сделать защиту от зажатой клавиши F5, резать запросы (чтобы снизить нагрузку на сервер) если от одного пользователей поступает много запросов одной и той же страницы, но с одного IP может работать несколько пользователей, поэтому делать ограничение только по IP не подходит

sdllll
() автор топика

С одного IP могут работать до 100 пользователей

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

Radjah ★★★★★
()
Ответ на: комментарий от sdllll

А при обновлении страницы по ф5 информация будет отдана уже из кеша браузера, разве нет? Попробуй ограничить кол-во запросов с одного адреса или количество коннектов к бл

julixs ★★★
()
Последнее исправление: julixs (всего исправлений: 1)

Подскажите как реализовать защиту от зажатия клавишы F5

Заменить клавиатуру не пробовали?

anc ★★★★★
()
Ответ на: комментарий от julixs

А при обновлении страницы по ф5 информация будет отдана уже из кеша браузера, разве нет?

Нет. Вот только сейчас обдолбился в эту F5 ничего не срабатывает, предлагаю угадать ЧЯДНТ? :)

anc ★★★★★
()
Ответ на: комментарий от sdllll

И… У вас сервер раком становится если один из 100 ф5 зажмет?

julixs ★★★
()
Ответ на: комментарий от julixs

Так если не вдубляете может пройдете мимо и поднакопите опыта? или только и хватает того чтобы написать что заменить клавиатуру?

sdllll
() автор топика
Ответ на: комментарий от julixs

Ну это упрощает решение проблемы в разы, адын таджик. :)

anc ★★★★★
()
Ответ на: комментарий от julixs

Судя по всему форумы поэтому и умирают, что приходишь за помощью, а получаешь советы заменить клавиатуру

sdllll
() автор топика

потом пользователь нажмет «Обновить» в браузере! Стирай в паинте кнопку «Обновить»

iTA05
()
Ответ на: комментарий от sdllll

Вам выше предложили:

1.Ограничивать количество запросов с одного адреса. 2. ограничивать число коннектов к бизнес-логике. Можете кэшировать все и вся.

julixs ★★★
()
Последнее исправление: julixs (всего исправлений: 2)
Ответ на: комментарий от julixs

Вы читать умеете? Если я ограничу запросы с одного IP, а на нем будет сидеть несколько пользователей, то некоторые из них пойдут лесом. На одном IP может сидеть целый офис.

sdllll
() автор топика
Ответ на: комментарий от julixs

Конечно:

«1.Ограничивать количество запросов с одного адреса.»

как это укладывается в логику работы одного офиса с 1 IP?

sdllll
() автор топика
Ответ на: комментарий от sdllll

снизить нагрузку на сервер, если от одного пользователей поступает много запросов

Задача созрела и развалилась на две подзадачи:

  1. Идентифицировать пользователя
  2. Ограничить пользователю количество запросов в единицу времени.
Nervous ★★★★★
()
Ответ на: комментарий от Nervous

Я не нашел, поэтому пришел за советом на форум к более опытным Или форум предназначен для уровня «замени клавиатуру» и «читай документацию»?

sdllll
() автор топика

Натравить на свой сервис siege и править код до тех пор, пока не перестанет ложиться под нагрузкой.

annulen ★★★★★
()
Ответ на: комментарий от sdllll

Форум — это не бесплатная техподдержка, которую можно оскорблять к тому же.

Правильно заданный вопрос уже содержит половину ответа. Здесь вопрос был задан максимально неграмотно, приходится угадывать, что имелось в виду.

Ограничивать количество запросов можно по сессиям пользователей. Если же они анонимные, то значит, можно закэшировать страницы сайта хотя бы на час, из кэша будет так быстро отдаваться, что пусть хоть занажимаются F5.

emorozov
()
Ответ на: комментарий от sdllll

С ngx_http_limit_req_module можно добавить сессионную куку (и вообще любые переменные) к ключу по которому лимитируются запросы

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Спасибо, посмотрю. В этом случае останется не защищенной только страницы авторизации, регистрации и восстановления пароля, так как на них еще нет выданной куки

sdllll
() автор топика
Ответ на: комментарий от MrClon

Внутри кабинета есть тяжелые таблицы, с оперативными данными, которые кешировать нельзя. Судя по всему ngx_http_limit_req_module + cookie будет лучшим решением

Спасибо

sdllll
() автор топика

У тебя продакшн веб сервер на ардуине?

Black_Shadow ★★★★★
()

Эту задачу надо решать не на нжинксе а в вашем пыхыпы-коде.

no-dashi-v2 ★★★
()

С одного IP могут работать до 100 пользователей

Внедрение IPv6, конечно же, не предлагать?

LeNiN ★★
()

Включить в nginx кеш на 1 секунду. Зачем выдавать юзеру ошибку, когда можно просто выдать страницу (из кеша) не напрягая бекэнд.

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от sdllll

Сделайте принудительный кеш всего в 1 секунду.

Shadow ★★★★★
()
Ответ на: комментарий от goingUp

Зачем выдавать юзеру ошибку, когда можно просто выдать страницу (из кеша) не напрягая бекэнд.

Да, это выглядит более по-человечески по отношению к пользователю.

Но, может, у него там еще и канал на 64 кбит/с с огромной задержкой.

Nervous ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.