Может ли какой-либо из этих файлов выполнить вирус на сервере? - PullRequest
4 голосов
/ 15 апреля 2011

Может ли какой-либо из перечисленных ниже типов файлов выполнить вирус или каким-либо образом нанести вред серверу?

pdf, .png, .jpg, .doc, .docx, .xls, .xlsx, .ppt,.pptx, .gif.

Ответы [ 3 ]

6 голосов
/ 15 апреля 2011

Сам вопрос не имеет смысла быть , поскольку ответы даны до сих пор (извините, что говорю это).Не воспринимайте все это как критику: я объясняю себя.

Вы даже можете загрузить TheWorstVirusInTheWorld.exe на свой сервер, но это не будет вредным, пока он на самом деле не будет выполнен.Если операционная система и / или ее оболочка или другие программы (или сценарии) не содержат серьезных ошибок, никакой код не выполняется автоматически , в смысле «без ведома системного администратора».

См.virustotal.com.Они просят вас загрузить подозрительные исполняемые файлы, чтобы узнать, являются ли они вирусами или нет.Боятся ли они этого?Конечно нет.Это потому, что файл загружается на сервер, а затем читает с помощью инструмента, который вы можете назвать «антивирусом», который их не выполняет.

Так что вопрос может быть таким: «какие файлы можно безопасно выполнить на моем сервере? "Ответ: нет файлов из неизвестных источников.Расширение файлов совершенно не имеет значения: в системах UNIX вы можете выполнить любой файл (даже .doc), для которого установлен бит исполнения (= атрибут).

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

3 голосов
/ 15 апреля 2011

@ AAA: процесс будет примерно таким:

1) Пользователь загрузит файл, скажем test.exe.

2) Когда он получен сервером, вы извлекаете расширениеи сохраните его в базе данных с именем файла, чтобы вы могли знать, что файл ведьмы имеет расширение типа.

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

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

0 голосов
/ 15 апреля 2011

Учитывая, что это указано в разделе «Загрузка PHP», я думаю, что он говорит об удаленном выполнении. Если это так, все они должны быть в безопасности. Обычный список вещей, которые я блокирую, находится в этом списке htaccess здесь

<Files ~ "\.(php|php3|php4|php5|phtml|pl|py|psp|js|jsp|cgi|util)$">
    Order deny,allow
    Deny From All
</Files>
...