Самый простой способ запретить доступ для определенной страны?

Не копаясь особенно в серверных настройках. Например по языку в браузере или еще каким-то меткам: как запретить доступ к сайту, точнее имитировать нерабочесть сайта (пустой документ или какая-нибудь ошибка). Возможно ли это? Приходит на ум JavaScript и определение языка у браузера клиента, а затем перезапись через document.write документ. Рабочий ли это способ? (не тестировал). Есть ли методы по-лучше?
  • Вопрос задан
  • 683 просмотра
Решения вопроса 2
riot26
@riot26
<:З )~~
По IP.
PS теги css и html -- лишние
набросал пример:
(не пускает всех, кто не из вайтлиста стран, для блеклиста придётся немного переписать)
<?php
if ( !checkAccess() ) {
    header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
    die("<h1>404</h1>Not found");
}
function checkAccess()
{
    $ip = getIP();
    return isAllowedIP($ip);
}
function isAllowedIP($ip)
{
    $allowed_countries = array("RU", "UA", "BY", "KZ"); //разрешённые страны
    $ip_info = getIPInfo($ip);
    return ( in_array($ip_info["countryCode"], $allowed_countries) || in_array($ip_info["country"], $allowed_countries) );
}
function getIPInfo($ip)
{
    $json = file_get_contents("http://ip-api.com/json/".$ip);
    return json_decode($json, true);
}
function getIP()
{
    if (!empty($_SERVER["HTTP_CLIENT_IP"])) {
        return $_SERVER["HTTP_CLIENT_IP"];
    } else if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) {
        return $_SERVER["HTTP_X_FORWARDED_FOR"];
    } else {
        return $_SERVER["REMOTE_ADDR"];
    }
}
Ответ написан
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
1. То. что Вы написали про JS - можно, работать будет. В заголовках даже отправляется Accept Language, ну или по ip можно.

НО! Отключив js, можно будет увидеть всё остальное.

2. На стороне приложения(в коде php), можно также по заголовку Accept Language, можно по ip.
Один из вариантов реализации предложил riot26

3. Можно отсекать через nginx, в принципе.
www.cyberciti.biz/faq/linux-unix-nginx-access-cont...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mletov
Как вариант, в .htaccess по диапазонам айпишников.
Использовал этот способ когда сайт ддосили из Китая.
Недостатки способа в том, что, во-1, htaccess раздувается непомерно, а во-2, у стран могут появиться новыые диапазоны.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект