Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка файлов на сервер(по ссылке)
 
 автор: CrazyAdmin   (16.01.2007 в 23:53)   письмо автору
 
 

Здравствуйте, в общем появилась задача загружать файлы на сервер, но не через форму($_FILES), а указанием ссылки на файл, который должен быть указан. Указывается в форме в текстовом поле. например ссылка http://site.ru/picture.jpg
Реализовал это следующим образом:

           $un=time().".jpg";
           $_POST['file_link']=htmlspecialchars(substr($_POST['file_link'],0,50));
            if(preg_match("/[jpg]$/",$_POST['file_link']) and getimagesize($_POST['file_link']))
                copy($_POST['file_link'],"./upl_files/".$un);


Вот хотелось бы про безопасность мною реализованного способа узнать, не получится ли залить таким образом шелл или какой нить скрипт. Проверку на размер файла мне делать не нужно.
да кстати в папку "upl_files" поставил права на чтение и запись для всех,а выполнение убрал. положил еще .htaccess, в папку, вот с таким содержанием:

            AddType text/plain .php .phtml
            AddHandler -cgi-script .pl .cgi


Жду комментариев, спасибо.

   
 
 автор: Саня   (17.01.2007 в 12:16)   письмо автору
 
   для: CrazyAdmin   (16.01.2007 в 23:53)
 

Вы хотите разрешить загружать только картинки?
Кстати, ваш скрипт не будет работать.
Вот рабочий вариант:
<?
$un 
time().".jpg"
if ( 
preg_match("/[jpg]{1}$/"$_POST['file_link']) ) {
  
$file file_get_contents($_POST['file_link']);
  
$fp fopen("./upl_files/".$un"w");
  
fwrite($fp$file);
  
fclose($fp);
}

   
 
 автор: kasmanaft   (17.01.2007 в 12:44)   письмо автору
 
   для: Саня   (17.01.2007 в 12:16)
 

Почему не будет работать, из-за htmlspecialchars ?

А вот под этим, я думаю подразумевалось, что имя файла должно оканчиваться на "jpg" :

preg_match("/[jpg]$/",$_POST['file_link'])

   
 
 автор: Саня   (17.01.2007 в 13:01)   письмо автору
 
   для: kasmanaft   (17.01.2007 в 12:44)
 

Это, что называется, написал не подумав. =)
Вообще скрипт рабочий, но htmlspecialchars() тут лишнее.

   
 
 автор: CrazyAdmin   (17.01.2007 в 21:02)   письмо автору
 
   для: Саня   (17.01.2007 в 13:01)
 

работать то он работает, меня волнует безопасность. соблюдена ли она?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования