Фильтр по языку браузера
Браузер передаёт сайту языки, которые предпочитает пользователь, в заголовке Accept-Language, например ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7. По этому заголовку и работает фильтр. Он выручает там, где одной страны мало: у посетителя, который заходит через VPN в другой стране, в браузере обычно всё равно стоит его родной язык.
Фильтр входит в гео-блокировку: в настройках сайта, вкладка Дополнительно, Гео-блокировка, раздел Язык браузера. Сама гео-блокировка должна быть включена. Фильтру по языку не нужна база GeoIP.
Режимы
| Режим | Действие |
|---|---|
| Выкл. | Язык браузера не учитывается (по умолчанию). |
| Запрещены | Блокировать посетителей, чей браузер запрашивает любой из выбранных языков. |
| Разрешены | Пускать только посетителей, чей браузер запрашивает хотя бы один из выбранных языков. |
Фильтр смотрит на все языки в заголовке, в том числе на те, что идут после первого. В режиме «Запрещены» браузер, отправляющий en-US,de;q=0.5, блокируется, если запрещён немецкий. В режиме «Разрешены» он проходит, если разрешён английский или немецкий.
В режиме «Разрешены» в списке должен быть хотя бы один язык: с пустым списком сайт не открылся бы ни у кого, и панель такое не сохранит. На сайт можно задать до 100 языков.
Языки выбираются так же, как страны: введите название или код, нажмите Enter, и язык появится в виде метки.
Языки и регионы
Язык охватывает все регионы, где на нём говорят. Если выбрать ru, под правило попадут ru, ru-RU, ru-BY и ru-KZ, а pt охватит и pt-PT, и pt-BR.
Чтобы выбрать только один регион, введите точный тег, например en-GB или pt-BR. Точный тег совпадает только с самим собой: правило для pt-BR не срабатывает для посетителя, который отправляет pt без региона или pt-PT.
Запросы без языка
Отметьте Блокировать посетителей без языка, чтобы отклонять запросы без заголовка Accept-Language (или с заголовком, в котором нет ничего пригодного). Настоящие браузеры этот заголовок отправляют всегда, а большинство скриптов и многие боты не отправляют. Проверка работает вместе с режимом «Запрещены» или «Разрешены»: когда режим языка «Выкл.», эта проверка тоже выключена. Если нужна только эта проверка, выберите «Запрещены» и оставьте список языков пустым.
Насколько это надёжно
Заголовок языка подделать так же легко, как User-Agent: любой скрипт может отправить Accept-Language: en-US. Используйте фильтр как дополнительный признак рядом со страной. Обычных ботов и случайных посетителей он отсеет, а тот, кто целенаправленно атакует ваш сайт, его обойдёт.
Посетители, заблокированные фильтром по языку, получают страницу блокировки гео-блокировки, а адреса из белого списка сайта освобождены от этой проверки.