Проверка содержимого файла, заливаемого на сервер.

Royal Flash

-=MaestrO=-
Проверка содержимого файла, заливаемого на сервер.

Вопрос первый: Каким образом можно проверить, что заливаемый файл является формата Word(doc) или Zip(что лежит в зипе не имеет значения).
Вопрос второй: Как сделать, чтобы произвольный файл не мог быть запущен с сервера (например не пхп скрипт).

Вопрос третий: Да и еще, как сделать так, чтобы файл из дирректории нельзя было скачать напрямую по ссылке, а только пользователям, имеющим на это право (у которых, например, SESSION[upload] = on)?

Я понимаю так:
1. проверка файла (размер; расширение; контент файла?) Если все ок, записываем.
2. Файл пишется в диррикторию, у к которой доступ по HTTP закрыт и скрипты из нее выполнять нельзя.
3.... как выдать из этой дирректории файл пользователю? Прочитать его скриптом и при помощи заголовков выдать юзеру, или есть способ полегче?
 

GodFrey

Новичок
3. Просто копируй этот файл куданить в темп и выдавай юзеру, а после скачивания удаляй из темпа этот файл. :)
 

chisto_tolyan

Враг народа
Вообще-то это вуже обсуждалось вроде. И про временные ссылки и про отдачу файлов.
По пункту 3:
header(); + manual = :D
 

kvf77

Red Devil
Да запарили ей-Богу - то jpeg проверяют - теперь вот до doc с zip добрались - боюсь форум рухнет если кто-нить из вам доберется до файла апачевского с контент тайпом и перечислением типов файлов - угомонитесь уже. сказано 100 раз - надежно не проверить.
 

Фанат

oncle terrible
Команда форума
Каким образом можно проверить, что заливаемый файл является формата Word(doc) или Zip(что лежит в зипе не имеет значения). Необходимо, чтобы этот файл не мог быть запущен с сервера (например не пхп скрипт).
каким образом эти два предложения связаны друг с другом?
Какое отношение имеет проверка формата к требованию невозможности запуска?
 

Royal Flash

-=MaestrO=-
Фанат
Никаким. Если не понятно: 2 вопроса по решению одной задачи.

kvf77
Вопрос каксается не супер-надежной проверки, что doc - есть на самом деле doc, а простой, но максимально-надежной проверки. А самое главное, интересует: каким образом исключить запуск файла на серваке со вредоноснім кодом. Если код запустится у юзера - не так важно...
 

kruglov

Новичок
Royal Flash
не инклюдить и не реквайрить ненадежные файлы и все.
 

Фанат

oncle terrible
Команда форума
Вопрос первый. Ответ - $_FILES
Вопрос второй. не запускать.
Вопрос третий. да.

-~{}~ 07.06.05 13:27:

постарайся впредь структурировать свои вопросы самостоятельно
 

Royal Flash

-=MaestrO=-
Фанат
Что именно "да" по вопросу №3: "Прочитать его скриптом и при помощи заголовков выдать юзеру" или "есть способ полегче"?
 

Royal Flash

-=MaestrO=-
Делай, например, так:

$redact_body = $body;

Перед выводом содержимого:
$body=str_replace("\n", "<br>", $body);
$body=str_replace(" ", " &nbsp", $body);

На редактирование выводиш: $redact_body;

Сорри, не туда запостил :(
 

Фанат

oncle terrible
Команда форума
Royal Flash
будь добр заниматься своими проблемами.
 

chisto_tolyan

Враг народа
Автор оригинала: Royal Flash
... А самое главное, интересует: каким образом исключить запуск файла на серваке со вредоноснім кодом. Если код запустится у юзера - не так важно...
А как у юзера код запустить?) Если не секрет, конечно)
 

Фанат

oncle terrible
Команда форума
нет, но товарищу надо "не супер надёжная проверка"
тем более, что в супер надёжной нет смысла
 

chisto_tolyan

Враг народа
Royal Flash
на JavaScript вредоносных кодов не бывает) popup и прочаяя хрень не в счет)
 
Сверху