Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
вопрос:
Нужно чтобы при клике по ссылке запускалось скачивание файла, но ссылка должна быть не прямая как site.ru/download/file1.rar
- а вот такая: site.ru/download/1/
ответ:
создайте файл download.php и папку download для файлов.
использовать так: localhost/download.php?file=01.jpg
Если обратиться к файлу напрямую через HTTP - выполнится, если директория доступна по HTTP и никак не защищена при помощи конфигурации сервера (скорее всего так и будет).
Кроме того, данный код уязвим, поскольку нет проверки на последовательности вроде "../../../" - можно просматривать содержимое всех доступных серверу файлов.
Подобная дырка была в каком-то веб-обменнике, который позволял качать любые файлы. Я посмотрел, нашёл конфиги и выкачал и их тоже. В следующих версиях баги не было, но появились другие, не менее сочные: возможность использования обменника как прокси, сливать файлы данных обменника с пользователями-паролями.
Умеют же люди писать.
Да ну это же просто пример элементарной качалки, чтоб поняли идею. Что не так? Ясен пень что надо подобавлять проверки, разбор ссылок, и прочие ингридиенты по вкусу, не будут же в ответе на вопрос за тебя готовый код писать.
Выглядит.. глупым?
Если обратиться к файлу напрямую через HTTP - выполнится, если директория доступна по HTTP и никак не защищена при помощи конфигурации сервера (скорее всего так и будет).
Кроме того, данный код уязвим, поскольку нет проверки на последовательности вроде "../../../" - можно просматривать содержимое всех доступных серверу файлов.
Умеют же люди писать.