За последние 24 часа нас посетили 62069 программистов и 1740 роботов. Сейчас ищут 877 программистов ...

Как сделать безопасным редирект?

Тема в разделе "PHP для новичков", создана пользователем MiraKR, 9 июл 2018.

  1. MiraKR

    MiraKR Новичок

    С нами с:
    9 июл 2018
    Сообщения:
    35
    Симпатии:
    2
    У меня на сайте стоит редирект, как я поняла открытый. Его код:
    <?php
    $url = $_GET["url"];
    header("Location: $url");
    ?>

    Я используя этот редирект, чтобы прятать внешние ссылки. Они с редиерктом считаются внутренними. К моему редиректу каким-то образом прицепились поно-сайты, страницы фейсбука и прочая ерунда, создавая ссылки вида «мой сайт/go.php?url=страница порносайта».

    Как изменить код редиректа, чтобы он не позволял показывать ссылки типа «мой сайт/go.php?url=страница порносайта» для сайтов, ссылки на которые не указаны на моем сайте?

    Нашла такой код:

    <?php
    $_GET[‘url’] = preg_replace(«/(\.\.\/)/»,»»,$_GET[‘url’]);
    $_GET[‘url’] = preg_replace(«/(\\x)/»,»»,$_GET[‘url’]);
    $_GET[‘url’] = preg_replace(«/\\\$/»,’***036;’,$_GET[‘url’]);
    $_GET[‘url’] = preg_replace(«/\\\/»,’***092;’,$_GET[‘url’]);
    $_GET[‘url’] = str_replace(«|»,»***124;»,$_GET[‘url’]);
    $url = $_GET[‘url’];
    header(«Location: $url»);
    ?>

    Но он не рабочий.
     
    #1 MiraKR, 9 июл 2018
    Последнее редактирование: 9 июл 2018
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    зачем тебе редирект?
     
  3. MiraKR

    MiraKR Новичок

    С нами с:
    9 июл 2018
    Сообщения:
    35
    Симпатии:
    2
    Скрыть внешние ссылки. Их много в статьях.
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @MiraKR, один из вариантов: белый список.
    Перед выполнением редиректа - проверить на нахождение значения $_GET['url'], например, в заранее заполненном массиве.
     
  5. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    PHP:
    1. $_SERVER['HTTP_REFERER']
    noindex nofollow robots.txt
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    с твоего сайта?
    --- Добавлено ---
    а зачем их скрывать?
     
  7. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Когда то давно это влияло на сео. Каждая внешняя ссылка понижала тиц пр снижала позиции в выдаче и т.д. Вот и забавлялись подобным.
    --- Добавлено ---
    Вообще можно сделать не мгновенный переход а с задержкой 10 сек и надписью "Вы уверенны что хотите покинуть наш безопасный сайт?" + Шаблон сайта с внутренними ссылками. Наоборот радоваться нужно считай бесплатный трафик