Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Загрузка файлов на сервер в папку с правами 777
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Загрузка файлов на сервер в папку с правами 777

Страниц (1): [1]
 

1. kir55rus - 30 Мая, 2013 - 11:23:44 - перейти к сообщению
Здравствуйте!

Есть папка на сервере с правами 777
Папка доступна пользователям для просмотра, то есть, находится она внутри каталога сайта, а не выше него.
Может ли кто-нибудь загрузить в нее файл, не используя интерфейс сайта?


вопрос 2.
Будьте добры, укажите на ошибки в коде (в плане безопасности)

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. function upload_img(){
  4.  
  5.         if( filesize($_FILES['img']['tmp_name']) > 204800) exit("Error! Size more than 200KB!"); //если размер больше 200кб, выдаем ошибку
  6.         $uploadfile = $_SERVER['DOCUMENT_ROOT'].'/img/'; //каталог для загрузки файлов
  7.        
  8.         if (preg_match('#\.(jpeg|jpg|gif|png)$#iUs', $_FILES['img']['name'], $out) && // проверяем расширение и запоминаем его
  9.  
  10. move_uploaded_file($_FILES['img']['tmp_name'], $uploadfile.($name=md5(time().basename($_FILES['img']['name'])).'.'.$out[1]) )) {
  11. //перемещаем загруженный файл. имя генерируем с помощью md5, в конец подставляем найденное ранее расширение
  12.  
  13.                 return $name; //если все ок, возвращаем имя файла после загрузки
  14.         }
  15.        
  16.         else exit("Error uploading");
  17. }
  18.  
  19. if( !empty($_FILES['img']) ){
  20.  
  21. $img = upload_img();
  22.                
  23. echo 'Загрузили файл '.$img.' <br>';
  24.                
  25.         }
  26.  
  27. ?>
  28.  
  29. <form action="index.php" method="post" enctype="multipart/form-data">
  30.         <p>Картинка: (max: 200KB) <input type="file" name="img" ></p>
  31.         <input type="submit" value="Add">
  32.         </form>
  33.  


Так же в папке img находится файл .htaccess
CODE (htmlphp):
скопировать код в буфер обмена
  1. php_flag engine 0
  2. AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp
2. Zuldek - 30 Мая, 2013 - 13:20:36 - перейти к сообщению
например через FTP, SSH. Ну и через шел по любому доступному протоколу.
Никогда не используйте исходные файлы. Сохраняйте обработанную (отресайзенную) копию, оригинал зачем держать?
3. kir55rus - 31 Мая, 2013 - 18:39:16 - перейти к сообщению
Zuldek пишет:
например через FTP, SSH. Ну и через шел по любому доступному протоколу.
Никогда не используйте исходные файлы. Сохраняйте обработанную (отресайзенную) копию, оригинал зачем держать?


SSH отключен.
Чтобы залить через FTP, нужно знать логин и пароль для доступа, верно?

Цитата:
Ну и через шел

Шелл еще нужно загрузить, если мы думаем об одном и том же... Я имею ввиду шеллы типа WSO

Цитата:
Сохраняйте обработанную (отресайзенную) копию
Ок, спасибо. Над этим поработаю

 

Powered by ExBB FM 1.0 RC1