Роскомсос - скрипт для определения IP госорганов

Тема в разделе 'Препятствуем блокировке сайта', создана пользователем Master, 30 сен 2015.

  1. fenix6390

    fenix6390 New Member

    Симпатии:
    1
    Репутация:
    0
    Если вставить этот код вместо того что в инструкции то выдает

    Parse error: syntax error, unexpected 'public' (T_PUBLIC) in /var/адрес/адрес/адрес/шаблон/index.php on line 20
     
  2. Master

    Master Модератор

    Симпатии:
    81
    Репутация:
    0
    Сделайте так
    Код:
        public function __construct()
        {
            $this->d = $_SERVER['DOCUMENT_ROOT'].'/roscomsos/';
            if ($ip) $this->ip=$ip;
        }
    
    Скоро зальем обновление без ошибок.
     
  3. fenix6390

    fenix6390 New Member

    Симпатии:
    1
    Репутация:
    0
    в этом случае если залить указанный код после head или body то выдает просто как текст а если сразу после <?PHP то такую же ошибку
     
  4. dunder

    dunder New Member

    Симпатии:
    1
    Репутация:
    0
    Пришлось отключить ошибки php. Ждем новую версию скрипта.
    Где то больше месяца назад поставил на страницы сайта - вроде как роском отступил, пока тишина.
     
  5. Vicol

    Vicol New Member

    Симпатии:
    1
    Репутация:
    0
    Как проверить если скрипт работает?
    то есть хочу проверить если на самом деле показывает сообщение что сайт закрыт...
    Спасибо
     
  6. Roscenzura.com

    Roscenzura.com Администратор Staff Member

    Симпатии:
    182
    Репутация:
    0
    Уже неоднократно писали в теме как, да и в инструкции есть.
    Переменной $_SERVER['REMOTE_ADDR'] присвоить IP из списка.
     
  7. netcenzure222

    netcenzure222 Member

    Симпатии:
    14
    Репутация:
    150
    Это если доступ будет разрешён только для клоудфларных серверов. В противном случае, если злоумышленнику станет известен реальный ip сервера, то никакой CloudFlare уже не спасёт от перезаписи заголовков, в том числе и HTTP_X_FORWARDED_FOR. Вообще всё, что приходит в куках, $_GET, $_POST и $_SERVER надо тщательно проверять.
     
  8. Roscenzura.com

    Roscenzura.com Администратор Staff Member

    Симпатии:
    182
    Репутация:
    0
    Можно реал_фром_айпи в Nginx прописать, хотя IP могут поменяться в Cloudflare. Тогда условие на самом сайте: если IP Cloudflare, тогда из заголовков вытаскиваем, если нет, обычный ремоте адрр.
     
  9. Roscenzura.com

    Roscenzura.com Администратор Staff Member

    Симпатии:
    182
    Репутация:
    0
    Last edited: 11 дек 2016
  10. Roscenzura.com

    Roscenzura.com Администратор Staff Member

    Симпатии:
    182
    Репутация:
    0
    Не понял, а в чем там правки?
    У нас это реализовано двумя методами, можно конечно объединить в один но это уже детали.
    Код:
        // Ищем IP в диапазоне, например, таком 155.39.133.161-155.39.133.174
        public function find_range($range)
        {
        $range=explode('-', $range);
    
        return ( ip2long($this->ip)>=ip2long($range[0]) && ip2long($this->ip)<=ip2long($range[1]) );
        }
       
        // Ищем IP в подсети, например, 151.224.182.0/23
        public function find_subnet($range)
        {
         list ($subnet, $bits) = explode('/', $range);
         
         $ip = ip2long($this->ip);
         $subnet = ip2long($subnet);
         
         $mask = -1 << (32 - $bits);
         $subnet &= $mask;
         
         return ($ip & $mask) == $subnet;
        }
    
    Или принципиально что-то не так в коде?
     
  11. Roscenzura.com

    Roscenzura.com Администратор Staff Member

    Симпатии:
    182
    Репутация:
    0
    Скрипт обновили.
    Тестовый скрипт, как здесь, тоже, только в архиве он называется test.php.
    Добавили еще админку для кодировки Windows-1251 (см. инструкцию).
     
    dunder нравится это.
  12. dunder

    dunder New Member

    Симпатии:
    1
    Репутация:
    0
    Спасибо за обновленный скрипт.
    В инструкции написано:

    /////////////////
    require_once("/roscomsos/roscomsos.php");
    $Roscomsos=new Roscomsos();
    $check_gos_ip=$Roscomsos->check_ip($_SERVER['REMOTE_ADDR']);

    if ($check_gos_ip==true) { echo 'Извините, проводятся технические работы'; exit; }
    /////////////////

    Чтоб работал пришлось прописать как было:

    require_once($_SERVER['DOCUMENT_ROOT']."/roscomsos/roscomsos.php");
     
    fenix6390 нравится это.
  13. fenix6390

    fenix6390 New Member

    Симпатии:
    1
    Репутация:
    0
    Аналогично

    что бы заработало так же пришлось прописать

    require_once($_SERVER['DOCUMENT_ROOT']."/roscomsos/roscomsos.php");

    p.s.
    dunder спасибо )
     
  14. sibsdf

    sibsdf New Member

    Симпатии:
    0
    Репутация:
    0
    Коллеги, всем доброго дня!
    Спасибо за ваш скрипт!
    Вопрос - как-то можно скрыть админку, ограничить доступ к папке со скриптом?(.htaccess, допустим)
    А еще может ли получится так, что пройдет время и возможно контора с помощью гугла найдет все сайты с установленным скриптом?
     
  15. Roscenzura.com

    Roscenzura.com Администратор Staff Member

    Симпатии:
    182
    Репутация:
    0
    Можете через .htaccess установить пароль на папку или переименовать саму папку. Пароль еще в самой админке не забудьте поменять.
    Можно запрет индексации папки задать.
     
  16. sibsdf

    sibsdf New Member

    Симпатии:
    0
    Репутация:
    0
    А как пароль на админке поменять? У меня нет пароля, открывается без пароля по /roscomsos/admin.php
     
  17. Roscenzura.com

    Roscenzura.com Администратор Staff Member

    Симпатии:
    182
    Репутация:
    0
    Быть такого не может, чтобы без пароля открывалось.
    В коде есть строчка.
    $password='Ltdfqlth5'; // Поменять пароль на свой
     
  18. sibsdf

    sibsdf New Member

    Симпатии:
    0
    Репутация:
    0
    нашел. спасибо. в инструкции просто на нашел вообще информации о пароле.
    Но я любой пароль могу ввести, нажать "Отправить" и попадаю в админку.
    Что-то не так...
     
  19. Roscenzura.com

    Roscenzura.com Администратор Staff Member

    Симпатии:
    182
    Репутация:
    0
    Last edited: 15 дек 2016
  20. d24192

    d24192 New Member

    Симпатии:
    0
    Репутация:
    0
    Допустим, я делаю страницу с чистым контентом для работника РКН, и что бы работнику РКН не было видно, что ему выдается страница с чистым контентом, а не запрашиваемая, использую iframe:
    {echo '<iframe src="mysite.ru/чистый контент" height="100%" width="100%" frameborder="0" scrolling="yes">'; exit; }
    Как вы считаете, могу ли я получить за это бан от гугла/яндекса? Как поисковики относятся к вашему скрипту?
    Наткнулся на пост https://plus.google.com/+AndreyLipattsev/posts/Ca6Cd9Yt22Q что Гугл банит за редиректы.
    Какие могут быть другие варианты выдачи "чистого контента"?
     
    Last edited by a moderator: 17 фев 2017
  21. dunder

    dunder New Member

    Симпатии:
    1
    Репутация:
    0
    На счет фреймов не в курсе. Я картинку поставил "Сайт на обновлении" - никаких проблем со стороны поисковиков не возникало.
     
  22. Наталья

    Наталья New Member

    Симпатии:
    0
    Репутация:
    0
    Привет. А можно ли сделать запрет не ко всему сайту, а лишь к определенным страницам? сайт на cms..
     
  23. dunder

    dunder New Member

    Симпатии:
    1
    Репутация:
    0
    CMS какая установлена?
     
  24. Наталья

    Наталья New Member

    Симпатии:
    0
    Репутация:
    0
    joomla 3,6 и instantvideo
     
  25. dunder

    dunder New Member

    Симпатии:
    1
    Репутация:
    0
    Лично я не работал с этими CMS. Лично мое мнение - трудновато будет, если только на определенные страницы, и к тому же не статические.
    Если ставить - то на все в главном файле index. Или экспериментировать.
    Впрочем, может кто другого мнения.
     

Поделиться этой страницей