[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подмена (переименование) файла при скачивании PHP
Страницы: 1, 2
techno77
....

 ! 

М
Тут я всё удалил. В следующий раз за "попытку розжига страстей" будет бан.
sergeiss
dr.nomore
Всего лишь надо задать в скрипте хотя бы один дир в качестве источника и злодей не проникнет никуда больше.

Вместо

$sourceFile = $_GET['filename'];

например

$sourceFile = '/downloads/.'$_GET['filename'];

Либо придется изображать "белый список" источников.

Потому что скрипт это не юзер, скрипт на сервере - он как бы админ, популярно выражаясь.
dr.nomore
В модель-вьюшной архитектуре все упрощается. Делается моделька без вьюхи через которую и направляются запросы такого рода.

например

http://www.example.com/downloads/2014/98/С...й_Пупкиным.docx

знающий человек видит параметры, id и подстановку, не знающий видит ссылку на документ.

При этом htaccess ничего кроме переадресации на потерянный в урле index.php не осуществляет. Там 5 строк чтобы скрыть index.php или типа того.

Иначе урл будет такой

http://www.example.com/index.php/downloads...й_Пупкиным.docx

И он будет такой и будет работать если вписать index.php вручную.

Все что справа от .php - path_info. Который разобрать как два пальца об асфальт.

Соответственно будет модель downloads.php через который все и попрет.
vagrand
dr.nomore
Цитата
$sourceFile = '/downloads/.'$_GET['filename'];


Открою вам маленькую тайну, в переменной $_GET['filename'] можно прислать такое: "../../some_file"

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
dr.nomore
Открою вам еще более маленькую тайну: прислать-то можно, а получить-то dir нельзя.

Присмотритесь к тому что вы цитировали.
killer8080
Цитата (dr.nomore @ 27.02.2014 - 09:31)
Открою вам еще более маленькую тайну: прислать-то можно, а получить-то dir нельзя.

Присмотритесь к тому что вы цитировали.

можно получить любой файл доступный под правами вебсервера
dr.nomore
Еще один прислонился /
dr.nomore
Ну ладно, сделайте так

$get = '../../php'; // или другой дир, который у вас в корне есть
$dir = $_SERVER['DOCUMENT_ROOT'].$get;
var_dump(is_dir($dir); // true


теперь так

$get = '../../php'; // или другой дир, который у вас в корне есть
$dir = $_SERVER['DOCUMENT_ROOT'].'/'.$get;
var_dump(is_dir($dir); // false


иначе это был бы не сервер, а шопесец
killer8080
dr.nomore
бред какой то пишешь. Чем эти два варианта отличаются? Да не чем.
dr.nomore
тупанул, недопроверил, забираю взад.
vagrand
Эхх, не откроют мне сегодня тайн php sad.gif

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
vasamen
Что бы не создавать заново темы напишу суть проблемы тут:
в корне сайта есть файл: site.ru/file.exe

На странице есть много ссылок(около 250шт.)
вида: site.ru
Есть файл: site.txt
в файле:
Название1 | site.ru(адрес)
Название2 | site.ru(адрес)
Название3 | site.ru(адрес)
Название4 | site.ru(адрес)

в файле test.php ссылки выводятся так:
        <a href="'.trim($url).'"> '.trim($title).' </a>


Нужно что бы в адрес передавался файл file.exe только с названием из переменной $title
что бы ссылка имела вид site.ru/$title.exe (site.ru/название1.exe и т.д.)

Смотрел функцию: readfile но не понял как сделать такое!
Помогите такое провернуть! Заранее спасибо!
Гость_Владимир
Странно, а почему не воспользовались тегом download ?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.