.htaccess перенаправляет все маршруты на маршруты обработки файлов

У меня практически нет опыта работы с .htaccess, поэтому у меня есть несколько вопросов, которые я хочу прояснить. Я пытаюсь создать веб-сайт, на котором весь трафик перенаправляется на мой файл маршрутизации, который его обрабатывает. У меня на уме что-то вроде https://domain.smt/register будет перенаправлено на https://domain.smt/router.php?url=register. Можно ли сделать это с помощью файла .htacess или есть лучший способ сделать это?

Однако с этим подходом есть проблема: если я хочу добавить параметры к своему URL-адресу, скажем, https://domain.smt/register?redirect=page/category/stuff не будет ли файл маршрутизатора уязвим для атак путем внедрения? Как мне решить эту проблему, если я использую этот подход .htaccess? Или этого просто не будет?

Я попытался найти его и наткнулся на этот Перенаправить все на index.php с помощью htaccess, но он по-прежнему не упоминает инъекцию выше, так что это просто я слишком много думаю?

Спасибо за любую помощь.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не нужна эта часть «url =» в вашем скрипте маршрутизатора. Настройте .htaccess, как описано в упомянутом вопросе, а затем используйте $_SERVER['REQUEST_URI'] — он уже содержит путь.

Еще проще, поставьте phpinfo(); в начало скрипта роутера и вы увидите, какие переменные в нем определены.

Я попробовал это, и одна вещь бросилась мне в глаза, а именно: [QUERY_STRING] => redirect=login/http/req&hello=world. Если я хочу использовать эту часть в своем коде, как я могу очистить ее, чтобы предотвратить инъекции? Достаточно ли htmlspecialchars?

yxlow07 11.05.2022 10:25

Чтобы разобрать эту строку, вы можете передать ее функции parse_str - php.net/manual/en/function.parse-str.php. Что касается очистки - это другой вопрос и зависит от того, где вам нужно использовать эту строку. На Stackoverflow есть множество вопросов и ответов по этому поводу,

astax 11.05.2022 14:10

Другие вопросы по теме