Вопрос по передаче файлов на сайт

Juriy

Новичок
Вопрос по передаче файлов на сайт

Возникла необходимость передавать файлы на сайт по HTTP, проблема в том , что файл невозможно залить до тех пор пока для каталога не указаны права доступа для всех т.е. полный доступ к каталогу. Можно было бы оставить и так, НО получается, что любой желающий сможет спокойно удалять (подменять, например вирусами), любой файл? Можно ли сделать так , чтобы допустим первоначально копировать файл во временную папку , допустим "file1", а далее передать её уже в папку к кторой указывается путь в гиперссылке и самое главное в папку у которой доступ "только для чтения"? Руками копировать через ФТП менеджер? Тупо и некрасиво получится. Но должно же быть решение проблемы? :) Я не прошу готового куска кода, мне хотя бы направление куда копать :). Спасибо.
 

iceman

говнокодер
пхп итак во временную папку закачивает, а ты уже сам копируешь куда тебе нужно, читаем мануал
 

Juriy

Новичок
да, это я знаю, но потом то файл предается в целевую папку, разве нет? И в том случае если доступ для любого желающего, что может помешать злоумышленнику залить файл в директорию (ведь в ссылке видно будет в какой папке лежат файлы)?
 

Фанат

oncle terrible
Команда форума
что может помешать злоумышленнику залить файл в директорию
Так ты ж вроде, этого и хотел? Чтобы любой мог заливать файлы?
Ты уж определись - нужно тебе заливать или нет.

При чем здесь ссылка и права доступа - непонятно.
 

Juriy

Новичок
Я то думал, что команда копирования выполняется ЛОКАЛЬНО на сервере, тогда проблем бы не было т.к. сначала файл попал бы во временную папку, а потом был бы премещён в целевую папку, но путем длительный экспериментов, получилось , что пока к ЦЕЛЕВОЙ папкенет ПОЛНОГО доступа для ВСЕХ, файл не копируется :-( т.е. судя по сообщению об ошибке он копируется во временную папку, а вот дальше нет .. :-( не пущает ..
 

Juriy

Новичок
Автор оригинала: *****
Так ты ж вроде, этого и хотел? Чтобы любой мог заливать файлы?
Ты уж определись - нужно тебе заливать или нет.

При чем здесь ссылка и права доступа - непонятно.
Что же непонятного то? Есть папка в которой лежат файлы и к ним указаны ссылки, разумеется необходимо, чтобы файл невозможно было подменить (допустим на вирус), файлы на сайт будет заливать ограниченное количество людей. Так вот вопрос в ТОМ как недопустить возможность ПОДМЕНЫ файлов? В чем тут каша?

-~{}~ 04.08.09 09:25:

т.е. чтобы любой желающий не смог ПОДМЕНИТЬ файлы. Доступ ещё раз подчеркуну для ограниченного количества людей которые точно не будут постить файлы с вирусами или иным способом препятствовать работе сайта

-~{}~ 04.08.09 09:29:

Автор оригинала: *****
Так ты ж вроде, этого и хотел? Чтобы любой мог заливать файлы?
И кстати я не писал, что хочу сделть доступ для ЛЮБОГО пользователя ...
 

Фанат

oncle terrible
Команда форума
ну и как ты видишь механизм этой ПОДМЕНЫ?
в практическом смысле. Что делает злоумышленник?
 

Juriy

Новичок
Автор оригинала: iceman
пхп итак во временную папку закачивает, а ты уже сам копируешь куда тебе нужно, читаем мануал
А мануал я читал ... собственно по примеру из мануала все и сделал, но пока не получил того что нужно ....

-~{}~ 04.08.09 09:38:

Автор оригинала: *****
ну и как ты видишь механизм этой ПОДМЕНЫ?
в практическом смысле. Что делает злоумышленник?
Ну я так понимаю, что если есть доступ к сетевой папке, причем ПОЛНЫЙ доступ т.е. и для записи в том числе, вполне реально удалить полезный файл и записать на его место что угодно? Да в конце концов удалить файл? Разве это невозможно сделать?
 

Фанат

oncle terrible
Команда форума
ПОЛНЫЙ доступ по какому протоколу?

-~{}~ 04.08.09 09:40:

Если бы это было возможно сделать, то к чему бы ли бы все эти телодвижения с заливкой во временную папку?
 

Juriy

Новичок
Автор оригинала: *****
ПОЛНЫЙ доступ по какому протоколу?

-~{}~ 04.08.09 09:40:

Если бы это было возможно сделать, то к чему бы ли бы все эти телодвижения с заливкой во временную папку?
Ну хотя бы вот отрывок из самоучителя по PHP хотя к ПХП это отношения не имеет ровным счетом никакого, тут описывается механизм работы с формами:

Мы указали метод отправки "POST". В этом случае данные отправляются на сервер несколько другим способом:

telnet www.example.com 80


POST /cgi-bin/form_handler.cgi HTTP/1.0\r\n
Host: www.example.com\r\n
Content-Length: 22\r\n
\r\n
name=Vasya&okbutton=OK

Пример отправки POST запроса к странице посредством телнета, разумеется этот запрос будет выполнен ...

-~{}~ 04.08.09 09:49:

Автор оригинала: *****
ПОЛНЫЙ доступ по какому протоколу?

-~{}~ 04.08.09 09:40:

Если бы это было возможно сделать, то к чему бы ли бы все эти телодвижения с заливкой во временную папку?
Доступ по HTTP
 

Juriy

Новичок
Автор оригинала: *****
ну и где здесь папка?


и где в протоколе НТТР запись "в сетевую папку"?
Хм ... :) Ну тут то простой пример с отправкой двух переменных POST запроса... , а что мешает указать дополнительные переменные? В принципе то в телнете , можно прописать что угодно. Собственно хакеры насколько я понимаю чаще всего в телнете и работают, это не то, что в фильмах про хакеров :) всякие там футуристичные графические оболочки показывают ... Да и собственно не обязательно даже телнетом пользоваться, достаточно написать просто POST запрос в HTML. Ну правда справедливости ради надо сказать, что для этого надо как минимум знать имя страницы с кодом ПХП ответственного за передачу файла, ну и плюс имена пременных .... Вообще при таком раскладе наверное действительно осуществить заливку файла не так просто будет .. :) Хотя все равно напрягает оставлять каталог открытым для всех .... , я собственно и задал вопрос для того , чтобы выяснить реально ли получить возможность шариться по открытой веб папке при помощи HTTP. Собственно форум и предназначен для того , чтобы на нем можно было обсудить непонятные аспекты, а безопасность играет не маловажную роль ...

-~{}~ 04.08.09 10:52:

Допустим написать:
<form enctype=\"multipart/form-data\" method=\"POST\" action="www.сайт.ру/upload.php">
<input type="file" name="myfile" />
<input type="submit" />

такой код наверняка будет выполнен, ну правда как я выше и писал для этого разумеется необходимо знать имя страницы с кодом обработки и имена переменных.
 

Фанат

oncle terrible
Команда форума
что мешает указать дополнительные переменные?
какие переменные? для чего?
при чем здесь переменные?
оставлять каталог открытым для всех
для кого "для всех"? что значит "шариться"?
форум и предназначен для того , чтобы на нем можно было обсудить непонятные аспекты
какие аспекты еще непонятны?

-~{}~ 04.08.09 10:56:

Если написать
<form enctype=\"multipart/form-data\" method=\"POST\" action="www.сайт.ру/upload.php">
то ничего не произойдет. браузер не знает метода \"POST\"

Допустим, будет выполнен. И что? В чем вопрос? Как закрыть паролем файл upload.php? С правами вопросов больше нет?
 

Juriy

Новичок
Автор оригинала: *****
какие переменные? для чего?
при чем здесь переменные?

для кого "для всех"? что значит "шариться"?

какие аспекты еще непонятны?

-~{}~ 04.08.09 10:56:

Если написать
<form enctype=\"multipart/form-data\" method=\"POST\" action="www.сайт.ру/upload.php">
то ничего не произойдет. браузер не знает метода \"POST\"

Допустим, будет выполнен. И что? В чем вопрос? Как закрыть паролем файл upload.php? С правами вопросов больше нет?
Извиняюсь ... ошибочка конечно не \"POST\" , а "POST", но это собственно не так важно вы ведь поняли, чтоя имел ввиду, просто кусок кода был из echo скопирован. "Для всех" я имел ввиду , что открыты ПОЛНЫЕ правда доступа т.е. чтение, запись, выполнение. Так вот собственно последний вопрос: возможен ли доступ к папке для записи/удаления файлов, при условии указания полных прав для всех типов пользователей? т.е. главным образом для удаленного пользователя? Если это НИКАК невозможно, я рад :)
 

Фанат

oncle terrible
Команда форума
В файловой системе не существует никаких "типов пользователей, и главным образом - удаленного пользователя".
 

Juriy

Новичок
Автор оригинала: *****
Допустим, будет выполнен. И что? В чем вопрос? Как закрыть паролем файл upload.php? С правами вопросов больше нет?
Да понятно, что можно закрыть файл upload.php прописав это в .htaccess, если кроме этой возможности больше никак то вопросов больше нет.

-~{}~ 04.08.09 11:17:

Автор оригинала: *****
В файловой системе не существует никаких "типов пользователей, и главным образом - удаленного пользователя".
Ну если Вы настаиваете, то могу быть точнее есть три группы "Для пользователя", "Для группы", "Для всех". Ну или "Owner", "Group", "Public"
 

Фанат

oncle terrible
Команда форума
Есть возможности. Но надо сначала определиться с тем, возможности ЧЕГО нам нужны. А то ты мечешься от папок к правам, от прав к возможностям, от возможностей к обязанностям.

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

iceman

говнокодер
пхп получает файл, кладет его во временную папку, пока работает твой скрипт и и там уже сам решаешь, закачивать его на сервак или нет... сам!

ps.форматируй свой мозг и заново читай хотя бы мануал по пхп +)
 
Сверху