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

Royal Flash

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

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

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

Я понимаю так:
1. проверка файла (размер; расширение; контент файла?) Если все ок, записываем.
2. Файл пишется в диррикторию, у к которой доступ по HTTP закрыт и скрипты из нее выполнять нельзя.
3.... как выдать из этой дирректории файл пользователю? Прочитать его скриптом и при помощи заголовков выдать юзеру, или есть способ полегче?
 
3. Просто копируй этот файл куданить в темп и выдавай юзеру, а после скачивания удаляй из темпа этот файл. :)
 
Вообще-то это вуже обсуждалось вроде. И про временные ссылки и про отдачу файлов.
По пункту 3:
header(); + manual = :D
 
Да запарили ей-Богу - то jpeg проверяют - теперь вот до doc с zip добрались - боюсь форум рухнет если кто-нить из вам доберется до файла апачевского с контент тайпом и перечислением типов файлов - угомонитесь уже. сказано 100 раз - надежно не проверить.
 
Каким образом можно проверить, что заливаемый файл является формата Word(doc) или Zip(что лежит в зипе не имеет значения). Необходимо, чтобы этот файл не мог быть запущен с сервера (например не пхп скрипт).
каким образом эти два предложения связаны друг с другом?
Какое отношение имеет проверка формата к требованию невозможности запуска?
 
Фанат
Никаким. Если не понятно: 2 вопроса по решению одной задачи.

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

-~{}~ 07.06.05 13:27:

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

$redact_body = $body;

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

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

Сорри, не туда запостил :(
 
Автор оригинала: Royal Flash
... А самое главное, интересует: каким образом исключить запуск файла на серваке со вредоноснім кодом. Если код запустится у юзера - не так важно...
А как у юзера код запустить?) Если не секрет, конечно)
 
нет, но товарищу надо "не супер надёжная проверка"
тем более, что в супер надёжной нет смысла
 
Royal Flash
на JavaScript вредоносных кодов не бывает) popup и прочаяя хрень не в счет)
 
Сверху