PHP Apache на Ubuntu обратные пути не работают - PullRequest
0 голосов
/ 02 апреля 2019

Я установил Apache в новой системе Ubuntu. Корневая папка для домена: /var/www/abc/web

Внутри папки abc есть изображение с именем logo_out.jpg, а внутри веб-папки у меня то же изображение с именем logo_in.jpg

У меня есть простой HTML-файл в папке /web с именем index.html, который содержит только одну строку

<img src="../logo_out.jpg" alt="image"/>

, который вообще не работает. Это совершенно странно. Я провел еще несколько тестов и заметил, что ../ никогда не идет назад. Чтобы убедиться в этом, я попробовал это.

<img src="../logo_in.jpg" alt="image"/>

Это не должно работать нормально, потому что имя файла неверно, но оно работает. Даже если я дам <img src="../../logo_in.jpg" alt="image"/>, он берет тот же logo_in.jpg внутри папки web.

Я не понимаю, почему это происходит. Я пропускаю какие-либо модули в Apache или что-то еще?

К вашему сведению, у меня PHP 5.6 с apache 2.4.29

1 Ответ

0 голосов
/ 02 апреля 2019

Ваш сервер будет (к счастью) блокировать запросы к путям abov e в вашем веб-каталоге. Вы не можете запрашивать файлы выше вашего корневого веб-каталога, что даже невозможно по стандарту RFC HTTP. Независимо от того, как abov e WEB DIR, вы перейдете со ссылкой HTML, Chrome и другие браузеры будут запрашивать корень WEB DIR. Если вы сделаете ссылку на

http://example.tld/../file.ext

браузеры будут запрашивать

http://example.tld/file.ext

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...