Поддельный URL-адрес браузера, сохраненный из PHP-файла подкаталога с использованием readfile () - PullRequest
0 голосов
/ 26 октября 2018

Это может быть глупой простой задачей или невозможной.И трудно понять, что искать.Публикация вопроса здесь.

Context

Я получил плагин Wordpress для обработки мультимедиа, и плагин конфигурируется для обслуживания файлов с:

ROOT/wp-content/uploads/protected/

В папке /protected/ есть (пустой index.html) и файл .htaccess:

RewriteCond %{REQUEST_URI} ^.*uploads/protected/.*
RewriteRule ^(.*)$ http://whatever.com/wp-content/plugins/plugin-name-root/subfolder/access.php?file=$0 [QSA,L]

Итак, файл .htaccess имеет rewriteRule для скрипта PHP, находящегося в плагиневложенная папка.URL-адрес в браузере в итоге выглядит следующим образом:

h ** p: //whwhat.com/wp-content/plugins/plugin-name-root/protect/access.php? File = some-document.pdf

Проблема, которую нужно решить

Этот URL слишком длинный, и я не хочу называть имя плагина в URL.Мне бы хотелось, чтобы обслуживалось файлом access.php в браузере, например (или что возможно):

h ** p: //whwhat.com/access.php? File= some-document.pdf

или даже лучше:

h ** p: //whwhat.com/access/some-document.pdf

Примечание: Я не хочу получить доступ к файлам с новым URL, просто доставить окончательный URL довольно.Мы по-прежнему выводим ссылки на веб-страницу (запросы) с URL-адресом, таким как h ** p: //whwhat.com/wp-content/uploads/protected/some-image-or-document.docx

Протокол (ы) плагинов обрабатывают вывод, как это происходит с readfile() после проверки.В этом случае скрипт в самом конце исполняется:

readfile('../../../uploads/protected/some-document.pdf');

и браузер показывает (как уже упоминалось):

h**p://whatever.com/wp-content/plugins/plugin-name-root/protect/access.php?file=some-document.pdf

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

Однако мы действительно не хотим изменять исходный файл WordPHROOT .htaccess для перенаправления оттуда.Мы надеемся просто подделать адрес в браузере . медиа-файлы также должны использовать каталог загрузок WordPress по умолчанию с / protect / subfolder.

Можно манипулировать кодом из

a) плагинакод ядра или из

b) .htaccess (созданный плагином) в папке upload / protected / или

c) создайте еще один "новый" файл .htaccess в доступе к плагину.Подпапка php, или

d) отправьте несколько заголовков перед readfile () в скрипте access.php ...

Это контекст!

Пух, кто-нибудь, какие-то мыслиподелиться, чтобы решить мои задачи?

...