За последние 24 часа нас посетили 20137 программистов и 1077 роботов. Сейчас ищут 698 программистов ...

Подмена Request URI

Тема в разделе "PHP для профи", создана пользователем xShiftx, 13 окт 2018.

  1. xShiftx

    xShiftx Новичок

    С нами с:
    27 май 2018
    Сообщения:
    25
    Симпатии:
    0
    Обнаружил весьма интересный эффект обратной связи PHP backend и JS frontend при выполнении fetch(динамическая замена AJAX) запросов к серверу.

    Дано router, который принимает на $_SERVER['REQUEST_URI'] определенные данные, в целях безопасности и более грамотного распределения инструкций REQUST_URI в лоб переопределен на другое значение, что позволяет сделать PHP.

    Например, $_SERVER['REQUEST_URI'] было равно '/forum/view/'

    после выполнения

    $_SERVER['REQUEST_URI'] = '/forum/boards/'

    мы переопределили внутреннюю переменную рута и как бы отправили на switch другие данные для отработки контроллером.

    При переходе без использования JS статически - все работает шикарно и идеаально, но при загрузке динамического содержимого методом JavaScript fetch существует какая-то скрытая обратная связь и я в адресе браузера получаю значение, которое переопределил, что не желательно и вынуждает писать длинные костыли на восстановление путя.

    Где эти данные, которые указывают браузеру сменить строку браузера хранятся? Я не смог их обнаружить в заголовках ответа? Можно ли как-то предотвратить такое поведение?

    Эта обратная связь меня порядком удручает и заставляет писать ненужную логику. Какая обратная связь у $_SERVER['REQUEST_URI'] есть с клиентом и где об этом можно прочитать хоть что-то? Никаких редиректов браузер не показывает вообще.
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Ну что fetch не меняет адресную строку - 100%, что твой костыль со сменой $_SERVER['REQUEST_URI'] тоже не причём - также ясно. А вот редирект скорее всего где-то скрылся.
     
    xShiftx нравится это.
  3. xShiftx

    xShiftx Новичок

    С нами с:
    27 май 2018
    Сообщения:
    25
    Симпатии:
    0
    В этом то свинья и зарылась. Редирект нигде не показывает. Попробую тоже самое на ajax.