Как стать автором
Обновить

Комментарии 31

Есть еще один способ защиты при загрузке изображений — использование nginx без fastcgi модуля для отдачи изображений из папки загрузки :)
НЛО прилетело и опубликовало эту надпись здесь
А еще лучше, помимо X-Accel-Redirect использовать mod_upload.
X-Accel-Redirect позволит считать статистику при скачивании (ну или другие действия, по вкусу), при этом обезопасить себя от DDOS-ов путем скачивания больших файлов.
mod_upload наоборот, для того что бы обезопасить себя от DDOS-ов путем закачивания файлов.

И т.к. за отдачу файлов будет отвечать frontend, то о большей части сказанного в этой статье можно забыть.

P.S. enartemy, благодарю за инвайт :)
Скорее это способ решить часть уязвимостей, затронутых в статье
+1 :)
минусы сносят хабрасилу гораздо больше, чем плюсы её нарасчивают, обидно
-1 :)
при этом нужно, чтоб папка загрузки не была доступна по http с PHPшного сервера, а то бестолку
Интерестные статьи, спасибо. Но я, к сожалению, пользуюсь Zend_File.
Хотя, думаю, проверю его работу по вашем материалам. Еще раз спасибо!
Почему «к сожалению»? Механизм Zend_File очень удобен, поддержка фильтров и валидаторов позволяет построить все, о чем говорил автор.
Объясните мне пожалуйста, почему нельзя создать в директории /uploads/ файл .htaccess, где прописать -ExecCGI? Насколько я понимаю, это запретит выполнение php скриптов в данной папке… Или я не прав?
при прямом обращению к файлу — да. Но не от include
Но почему тогда я никогда не видел подобного совета по безопасности вообще нигде? Ведь если скрипт заведомо не использует в include переменные, то этого должно хватить для полного обеспечения безопасности? Причем вроде бы без потери производительности?
Абсолютно правы, можно и так. Единственное, мы имеем открытый досуп к любым файлам из этой директории. И еще, я не уверен что хоть и нельзя выполнить файл, его также нельзя будет приинклудить.

Вощем, да, так можно — но надо еще в куче всего удостовериться.
Но ведь это такое простое решение :) Гораздо проще чем все эти проверки… Да, заинклудить файл можно будет, но если скрипт не использует переменных в инклудах? А открытый доступ что так что так есть — если уж мы отдаем файлы из этой директории. Да и в любом случае, подобный .htaccess явно повысит безопасность системы. Мне просто интересно, почему об этом никто не говорит? Я не верю, что я додумался до этого первым.
Да не, так конечно можно и нужно. Только это все равно не понацея от всего. В частности, это не решает проблему разделения доступа к файлу. Вообще никак.
только один вопрос, а как вам удалось вторую статью написать меньше чем за минуту? о_О
Как, вы ничего не слышали о том, что статьи можно сначала написать в ворде? :-)) А потом при написании статьи вы никогда не видели кнопочки «В черновики»? Она там есть, поверте… :-)
На самом деле это было некое подобие шутки. А мне тут начинают описывать сам тех процесс. Я думал НЛО написало вторую статью, пока автор писал первую.

В общем не важно…
написано же, «перевод»…
«перевод за минуту». гениально!
Слово «безлопастную» в конце неимоверно порадовало.
«Это вторая часть первода». Исправьте ошибку, пожалуйста.
В статье юзается DB модуль pear. почему бы просто не воспользоваться тем же HTTP_upload модулем и упростить себе задачу? Там можно вписать и ограничения расширений и обьёма файла, и сгенерировать новое имя для файла при загрузке
Это уже к Alla Bezroutchko :-) Тут вообще много чего можно упростить, но все-таки перевод должен оставаться перводом.

PS: Знаете как электронный переводчик перевел PEAR::DB? — ГРУША:: ДЕЦИБЕЛОВ :-)))
Например, если вызвать
www.example.com/view5.php?name=../../../etc/passwd, то возможно получится прочитать файл с паролями.

Пароли (вернее их хэши) уже давно в этом файле не хранятся.
Статья 2007-го года. За год все изменилось?
Статья 2007-го года. За год все изменилось?

en.wikipedia.org/wiki/Shadow_password
Password shadowing first appeared in UNIX systems with the development of System V Release 3.2 in 1988 and BSD4.3 Reno in 1990. Vendors which had performed ports from earlier UNIX releases did not include the new password shadowing features, leaving users of those systems exposed to password file attacks.

In 1987 the author of the original Shadow Password Suite, Julie Haugh, experienced a computer break-in and wrote the initial release of the Shadow Suite containing just the login, passwd and su commands. The original release, written for the SCO Xenix operating system, quickly got ported to other platforms. The Shadow Suite was ported to Linux in 1992 one year later from Linux announcement and became a part of many early distributions.


P.S. Побольше читайте про Linux/UNIX, а не зацикливаейтесь на подобного рода статьях :)
не всегда можно сохранить файлы за пределами корня
хороший профи сломает любой сайт, на который ему укажут… тут уж, извиняйте, ничего не поделаешь… причем часто, как я понимаю, проще сервак ломануть, а потом уже сам сайт… так что это все-- защита от студентов…

как то раз присутствовал на теоретическом взломе-- это что-то… ломать-- не строить…
Спасибо за материал. Для себя решил
1 сохранять файлы на отдельный сервер, где не будет выполняться php
2 менять имя файла
3 проверять размер файла (кстати как это лучше сделать?)
4 ну и не использовать переменные в инклудах :)
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории