Перейти к содержимому


Пользователь месяца
BLIK BLIK 1-й за Февраль
Очков активности: 1228 0 тем, 63 сообщения, 13 баллов репутации
ТОП самых активных за этот месяц
  • Фотография Андрей WPMasterKZ
    #1

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 1548 Вне конкурса за определение пользователя месяца

  • Фотография ShowPrint
    #2

    ShowPrint (ShowPrint.ru)
    Очков активности: 874.5 1 тема, 50 сообщений, 11 баллов репутации

  • Фотография magnet
    #3

    magnet (rbfxdirect.com)
    Очков активности: 451.5 Вне конкурса за определение пользователя месяца

  • Фотография Megoydagi
    #4

    Megoydagi
    Очков активности: 333 8 тем, 50 сообщений, 3 балла репутации

  • Фотография pozitron123
    #5

    pozitron123
    Очков активности: 202.5 5 тем, 30 сообщений, 3 балла репутации

  • Фотография maxnik
    #6

    maxnik (konovalovpavel.ru)
    Очков активности: 177 2 темы, 53 сообщения, 2 балла репутации

  • Фотография BLIK
    #7

    BLIK
    Очков активности: 142.5 Вне конкурса за определение пользователя месяца

  • Фотография OlgaGetman
    #8

    OlgaGetman
    Очков активности: 117 Вне конкурса за определение пользователя месяца

  • Фотография WGN
    #9

    WGN (worldgamenews.com)
    Очков активности: 108 0 тем, 36 сообщений, 2 балла репутации

  • Фотография ediksing
    #10

    ediksing (online-zarabotai.ru)
    Очков активности: 57 2 темы, 32 сообщения, 1 балл репутации

  • Показать весь ТОП 10

Новый Teasernet

Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 26.02.2019
  • Яндекс выдача: 21.03.2019
Топ 5 участников по репутации


Проверка скрипта go.php

#1 Guitaristka

Guitaristka
  • Пользователь
  • 20 сообщений
  • Репутация: 0
0

Отправлено 29 December 2018 - 12:53

Добрый день. На днях обнаружила - что с моего сайта через файл go.php , содержащего одну только строку header('Location: '.$_GET['go']);

в интернете очень много переходов на порносайты.

Поддержка хостинга написала-что нужно прописать проверку скрипта.

Я не программист, и в интернете не особенно поняла что именно надо туда добавить.

Прошу помощи специалистов

 

Но пока строка выглядит так в поисковиках

https://www.google.c...;FORID:1;&hl=ru

 

 

Прикрепленные файлы

  • Прикрепленный файл  go.php   41байт   Количество загрузок: 7

 

 

  • 0

#2 Ixman

Ixman
  • Пользователь PRO
  • 3139 сообщений
  • Репутация: 821

Отправлено 29 December 2018 - 16:10

@Guitaristka, я бы вам ещё и предложил сливать куда-нибудь этот адалт трафик, так как вашему сайту он не нужен. А так вам можно попробовать добавить в файл .htaccess что-то в этом духе
 


RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?вашсайт.ru [NC] 
RewriteRule \go.php - [NC,F,L]

 
Не гарантирую что будет работать


Сообщение отредактировал Ixman: 29 December 2018 - 16:11

  • 0


#3 Guitaristka

Guitaristka
    Topic Starter
  • Пользователь
  • 20 сообщений
  • Репутация: 0

Отправлено 29 December 2018 - 16:17

@Ixman, вставила ваш код - не работает(

Parse error: syntax error, unexpected T_STRING in /home/guitarisеt/public_html/go.php on line 2


Сообщение отредактировал Guitaristka: 29 December 2018 - 16:19

  • 0

#4 Ixman

Ixman
  • Пользователь PRO
  • 3139 сообщений
  • Репутация: 821

Отправлено 29 December 2018 - 16:19

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


  • 0


#5 stvJnK

stvJnK
  • Пользователь
  • 4 сообщений
  • Репутация: 1

Отправлено 05 January 2019 - 16:42

@Guitaristka,

Если я Вас правильно понял, то алгоритм следующий:

1. Проверять на какой сайт хочет перейти пользователь и сравнивать со списком запрещенных.

2. Проверять на скрипт перешли с текущего сайта.

3. Иначе выводить ошибку 404 (страница отсутствует) 

 

В коде это будет так:

<?php
  // Массив с запрещенными сайтами
  $blockedUrls = ['xxx.net',''];
  /*
   * Проверяем адрес для перехода в списке запрещенных.
   */
  if(!in_array( parse_url($_GET['go'], PHP_URL_HOST), $blockedUrls )) {
    /*
     * Проверяем перешли на данный скрипт. Если с текущего сайта, то делаем переход
     */
     if($_SERVER['HTTP_HOST'] == parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST)) {
       header('Location: '.$_GET['go']);
     }
  }
  // Выводим ошибку 404
  header("HTTP/1.0 404 Not Found");
  exit;

  • 1

#6 Guitaristka

Guitaristka
    Topic Starter
  • Пользователь
  • 20 сообщений
  • Репутация: 0

Отправлено 05 January 2019 - 17:23

@stvJnK, Спасибо! Думаю, что не совсем так нужна проверка.

Чтобы не индексировались некоторые внешние ссылки на моем сайте - я их поставила через go.php - то есть человек по ним перейдет куда нужно, а поисковая система будет их видеть не внешними.

 

Например код выглядит так:

<a class="ss" href="http://guitaristka.ru/go.php?go=http://www.realmusic.ru/morskoyorkestr/" rel="nofollow" onmousemove="window.status='http://www.realmusic.ru/morskoyorkestr/';" onmouseout="window.status='';" title="Ссылки на музыку c участием Алины Юдаевой" target="_blank">www.realmusic.ru/morskoyorkestr</a>

  • 0

#7 Ixman

Ixman
  • Пользователь PRO
  • 3139 сообщений
  • Репутация: 821

Отправлено 05 January 2019 - 18:35

@Guitaristka, я забылся проверить своё решение, но вам в принципе дали рабочий вариант, но громоздкий и не гибкий.


  • 0


#8 Ixman

Ixman
  • Пользователь PRO
  • 3139 сообщений
  • Репутация: 821

Отправлено 05 January 2019 - 18:52

Мой вариант не катит походу


  • 0


#9 Ilya74

Ilya74
  • Пользователь
  • 33 сообщений
  • Репутация: 2

Отправлено 05 January 2019 - 21:04

Идея состоит в том, чтобы проверять реферер. Так что оба варианта правильные, но требуют доработки под задачу.

 

 

 

Parse error: syntax error, unexpected T_STRING in /home/guitarisеt/public_html/go.php on line 2

Эта ошибка возникла, потому что вставили код для .htaccess в go.php. Вставлять надо в .htaccess.


  • 0

#10 Guitaristka

Guitaristka
    Topic Starter
  • Пользователь
  • 20 сообщений
  • Репутация: 0

Отправлено 05 January 2019 - 21:20

[quote name="Ilya74" post="184695"]
Вставила в  .htaccess

Сайт закрылся на белый лист с ошибкой 500


 

А если оставить только этот код - то порносайты не перейдут? То есть с моего сайта только будет работать переход?

<?
  if($_SERVER['HTTP_HOST'] == parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST)) {
           header('Location: '.$_GET['go']);
         }
?>

  • 0

#11 Ilya74

Ilya74
  • Пользователь
  • 33 сообщений
  • Репутация: 2

Отправлено 05 January 2019 - 21:29

Сайт закрылся на белый лист с ошибкой 500

Я надеюсь Вы в коде Ixman исправили  вашсайт.ru на адрес Вашего сайта?

 

Я бы сделал что-то вроде:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://guitaristka\.ru [NC] 
RewriteRule ^.*$ /go.php [NC,QSA]

Вообще, в интернете тьма примеров по .htaccess.

 

Ещё можно всё-таки использовать PHP и просто добавить в Ваш go.php проверку реферера. Вам уже даже показали как это сделать:

if($_SERVER['HTTP_HOST'] == parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST)) {
   header('Location: '.$_GET['go']);
}

  • 1

#12 Guitaristka

Guitaristka
    Topic Starter
  • Пользователь
  • 20 сообщений
  • Репутация: 0

Отправлено 05 January 2019 - 21:39

     if($_SERVER['HTTP_HOST'] == parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST)) 
	 {
       header('Location: '.$_GET['go']);
     }

(( не работает. Но мысль нужна эта.  Подскажите пожалуйста - как написать эту мысль, чтобы работала?

 

 

 я вставляю ссылку  абсолютно на любой сайт вне самого сайта - просто в браузере - и осуществляется переход - как и делают все порносайты. Нужно как-то привязать этот переход не обособленно, а именно только с сайта - тогда переход происходит. А если просто с другого сайта - нет.

http://www.guitaristka.ru/go.php?go=https://yandex.ru/

Сообщение отредактировал Guitaristka: 05 January 2019 - 21:47

  • 0

#13 stvJnK

stvJnK
  • Пользователь
  • 4 сообщений
  • Репутация: 1

Отправлено 05 January 2019 - 21:50

@Guitaristka, Что или как именно не работает? В код ниже добавил, если перейти по адресной строке (на прямую) то выдает ошибку 404.

<?php
  if(isset($_SERVER["HTTP_REFERER"])) {
    if($_SERVER['HTTP_HOST'] == parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST)) {
      header('Location: '.$_GET['go']);
     }
   } else {
    // Выводим ошибку 404
    header("HTTP/1.0 404 Not Found");
    exit;
  }

Сообщение отредактировал stvJnK: 05 January 2019 - 21:50

  • 0

#14 stvJnK

stvJnK
  • Пользователь
  • 4 сообщений
  • Репутация: 1

Отправлено 05 January 2019 - 22:05

@Guitaristka, возможно у Вас не корректно отдаются заголовки, проверить можно:

<?php
echo '<br>HTTP_REFERER:';
var_dump($_SERVER["HTTP_REFERER"]);
echo '<br> "'.$_SERVER['HTTP_HOST'].'" == "'. parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST).'"';
echo '<pre>Информация по заголовкам сервера:';
var_dump($_SERVER);

если первая строка будет HTTP_REFERER: NULL , значит надо смотреть другие варианты переходов.


  • 0

#15 Guitaristka

Guitaristka
    Topic Starter
  • Пользователь
  • 20 сообщений
  • Репутация: 0

Отправлено 06 January 2019 - 11:10

Вставила код: в go.php

 <?php
      if(isset($_SERVER["HTTP_REFERER"])) {
        if($_SERVER['HTTP_HOST'] == parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST)) {
          header('Location: '.$_GET['go']);
         }
       } else {
        // Выводим ошибку 404
        header("HTTP/1.0 404 Not Found");
        exit;
      }
	  echo '<br>HTTP_REFERER:';
var_dump($_SERVER["HTTP_REFERER"]);
echo '<br> "'.$_SERVER['HTTP_HOST'].'" == "'. parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST).'"';
echo '<pre>Информация по заголовкам сервера:';
var_dump($_SERVER);
?>

при переходе с сайта написало:

Warning: Cannot modify header information - headers already sent by (output started at /home/guitaristes/public_html/go.php:2) in /home/guitaris/public_html/go.php on line 5
HTTP_REFERER:string(36) "http://www.guitaristka.ru/main.shtml"
"www.guitaristka.ru" == "www.guitaristka.ru"
ааНбаОбаМаАбаИб аПаО аЗаАаГаОаЛаОаВаКаАаМ баЕбаВаЕбаА:array(40) {
  ["SERVER_SIGNATURE"]=>
  string(0) ""
  ["UNIQUE_ID"]=>
  string(24) "XDG231ttyXcAAB6I0jcAAAAZ"
  ["HTTP_X_FORWARDED_FOR"]=>
  string(12) "46.242.10.91"
  ["HTTP_USER_AGENT"]=>
  string(77) "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"
  ["PHPRC"]=>
  string(26) "/home/guitaristes/public_html"
  ["SERVER_PORT"]=>
  string(2) "80"
  ["HTTP_HOST"]=>
  string(18) "www.guitaristka.ru"
  ["HTTP_X_REAL_IP"]=>
  string(12) "46.242.10.91"
  ["DOCUMENT_ROOT"]=>
  string(26) "/home/guitaristes/public_html"
  ["PHP_DOCUMENT_ROOT"]=>
  string(14) "/home/guitaris"
  ["SCRIPT_FILENAME"]=>
  string(33) "/home/guitaris/public_html/go.php"
  ["REQUEST_URI"]=>
  string(35) "/go.php?go=http://www.musiclady.ru/"
  ["SCRIPT_NAME"]=>
  string(7) "/go.php"
  ["HTTP_CONNECTION"]=>
  string(5) "close"
  ["PHP_FCGI_CHILDREN"]=>
  string(1) "0"
  ["REMOTE_PORT"]=>
  string(5) "55510"
  ["PATH"]=>
  string(13) "/bin:/usr/bin"
  ["PWD"]=>
  string(26) "/home/guitaristes/public_html"
  ["SERVER_ADMIN"]=>
  string(24) "webmaster@guitaristka.ru"
  ["REDIRECT_STATUS"]=>
  string(3) "200"
  ["TZ"]=>
  string(13) "Europe/Moscow"
  ["HTTP_ACCEPT_LANGUAGE"]=>
  string(35) "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"
  ["HTTP_REFERER"]=>
  string(36) "http://www.guitaristka.ru/main.shtml"
  ["HTTP_ACCEPT"]=>
  string(63) "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
  ["REMOTE_ADDR"]=>
  string(12) "46.242.10.91"
  ["SHLVL"]=>
  string(1) "0"
  ["SERVER_NAME"]=>
  string(18) "www.guitaristka.ru"
  ["SERVER_SOFTWARE"]=>
  string(6) "Apache"
  ["MAGICK_THREAD_LIMIT"]=>
  string(1) "2"
  ["QUERY_STRING"]=>
  string(27) "go=http://www.musiclady.ru/"
  ["SERVER_ADDR"]=>
  string(14) "91.109.201.119"
  ["GATEWAY_INTERFACE"]=>
  string(7) "CGI/1.1"
  ["HTTP_UPGRADE_INSECURE_REQUESTS"]=>
  string(1) "1"
  ["SERVER_PROTOCOL"]=>
  string(8) "HTTP/1.0"
  ["REQUEST_METHOD"]=>
  string(3) "GET"
  ["HTTP_COOKIE"]=>
  string(579) "last_visit=1546751149240::1546761949240; phpbb3_ginr1_k=se8uce5pwefvp1tw; _ym_uid=1517900361216872457; coppermine_data=YTo0OntzOjI6IklEIjtzOjMyOiI0Y2M4MDY5MGVmYjliOGNkMTk1NzA0MGQ2ZTQyNTdlZiI7czoyOiJhbSI7aToxO3M6NToibGl2X2EiO2E6NDp7aTowO2k6NTtpOjE7aTozO2k6MjtpOjE7aTozO2k6NDt9czozOiJsaXYiO2E6NTp7aTowO3M6NDoiMzU1NiI7aToxO3M6NDoiMzg0NSI7aToyO3M6NDoiMzc2MiI7aTozO3M6MToiMSI7aTo0O3M6MzoiMjM2Ijt9fQ%3D%3D; 0dd0220d4d5cd6e0798559ab5508fb7d=57c7f1d7f6ab1cb824770ebf8bc0ac94; phpbb3_ginr1_u=5; phpbb3_ginr1_sid=a1a5b961c1ca9fbf152aad6f3aad3601; PHPSESSID=6d482763e6261ca9426bd9d349fb254f"
  ["PHP_SELF"]=>
  string(7) "/go.php"
  ["REQUEST_TIME"]=>
  int(1546761951)
  ["argv"]=>
  array(1) {
    [0]=>
    string(27) "go=http://www.musiclady.ru/"
  }
  ["argc"]=>
  int(1)
}

при переходе с адресной строки напрямую написало:

Warning: Cannot modify header information - headers already sent by (output started at /home/guitaris/public_html/go.php:2) in /home/guitaris/public_html/go.php on line 9

а такой код

    <?php
      if(isset($_SERVER["HTTP_REFERER"])) {
        if($_SERVER['HTTP_HOST'] == parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST)) {
          header('Location: '.$_GET['go']);
         }
       } else {
        // Выводим ошибку 404
        header("HTTP/1.0 404 Not Found");
        exit;
      }

дает ошибку

Warning: Cannot modify header information - headers already sent by (output started at /home/guitaristes/public_html/go.php:2) in /home/guitaris/public_html/go.php on line 5

Сообщение отредактировал Guitaristka: 06 January 2019 - 11:19

  • 0

#16 Ilya74

Ilya74
  • Пользователь
  • 33 сообщений
  • Репутация: 2

Отправлено 06 January 2019 - 11:29

Warning: Cannot modify header information - headers already sent by (output started at /home/guitaristes/public_html/go.php:2) in /home/guitaris/public_html/go.php on line 5

Ошибка говорит о том, что заголовки уже были отправлены выше. Возможно в начале файла где-то случайно вставили какой-то символ.

 

А вообще по-хорошему наймите программиста или начните учить PHP, с таким гаданием и без доступа к файлам далеко не уедешь. 


  • 0

#17 Guitaristka

Guitaristka
    Topic Starter
  • Пользователь
  • 20 сообщений
  • Репутация: 0

Отправлено 06 January 2019 - 11:53

@Ilya74, так я сам файл прикрепила в первом сообщении - можете его посмотреть. Других не используется. файл go.php и строка у начала сайтов http://www.guitaristka.ru/go.php?go=

 

Вы можете сами в файл писать коды и вставлять через строку мою любой сайт - чтобы увидеть результат

<?php
    if(isset($_SERVER["HTTP_REFERER"])) {
        if($_SERVER['HTTP_HOST'] == parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST)) {
          header('Location: '.$_GET['go']);
         }
       } else {
        // Выводим ошибку 404
        header("HTTP/1.0 404 Not Found");
        exit;
      }
?>

Этот код дает просто пустую чистую белую страницу при переходе.


Сообщение отредактировал Guitaristka: 06 January 2019 - 11:55

  • 0

#18 Ixman

Ixman
  • Пользователь PRO
  • 3139 сообщений
  • Репутация: 821

Отправлено 06 January 2019 - 13:30

header("HTTP/1.0 404 Not Found"); exit;

 

потому что здесь просто выводится заголовок 404 not found и больше ничего, можно сделать редирект на другой внешний URL. или на главную сайта. В вашем случае лучше всё же кому-то отдать адалт трафик

<?php
    if(isset($_SERVER["HTTP_REFERER"])) {
        if($_SERVER['HTTP_HOST'] == parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST)) {
          header('Location: '.$_GET['go']);
         }
       } else {
        header('Location: http://site.ru');
        exit;
      }
?>

Так что оба варианта правильные, но требуют доработки под задачу.
 

 

пробовал вчера по всякому код для htaccess, но чёт никак и рефер другой был


Я бы конечно предложил добавлять свои внешние ссылки в базу и проверять их перед редиректом, есть ли такие в базе. Но для ТС такой вариант будет всего скорее самостоятельно не реализуем 


Ещё можно попробовать такой код, если есть проблемы с заголовком

<?php
  ob_start();
  if (isset($_SERVER['HTTP_REFERER'])) {
    if ($_SERVER['HTTP_HOST'] == parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST)) {
      header('Location: '.$_GET['go']);
    }
  } else {
    header('Location: http://site.ru');
    exit;
  }
  ob_end_flush();
?>

Сообщение отредактировал Ixman: 06 January 2019 - 13:15

  • 0


#19 Guitaristka

Guitaristka
    Topic Starter
  • Пользователь
  • 20 сообщений
  • Репутация: 0

Отправлено 06 January 2019 - 13:38

@Ixman, вот похоже , что такой вариант у меня срабатывает - со строкой

header('Location: http://site.ru');

единственно - как прописать (добавить) в этот кусок переход как с http://www.guitaristka.ru/go.php?go=  так и с http://guitaristka.ru/go.php?go=

Потому что сейчас с www  -он переходит, а просто без него дает снова чистый лист. А у меня на сайте эти ссылки ставились несколько лет назад и что-то писалось с www , что-то без - есть такая проверка?

Спасибо Вам огромное)


:unsure: :( - сработало 5 раз и снова белый лист. Хоть www, хоть без ((

Из браузера переходит отлично на site.ru , а вот с сайта снова белый лист открывается


Сообщение отредактировал Guitaristka: 06 January 2019 - 13:41

  • 0

#20 Ixman

Ixman
  • Пользователь PRO
  • 3139 сообщений
  • Репутация: 821

Отправлено 06 January 2019 - 13:41

@Guitaristka, по идеи должны работать оба варианта, сейчас попробую разобраться что не так там


  • 0


robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85


Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru