Я прогаю на пхп уже год, но не понял, как они сломали его ?

mod_rewrite -- это уже для утонченного садизма (отдавать пропатченные неверные исходники). А так достаточно и <Files ~ .......>
 
А как же аплоадные дыры?
Познать секрет 2-го ДАО: всегда проверять расширения файлов, которые закачиваются в фаловую систему (oчень странно, но многие такого не делают, а потом в ожидании фотки юзера получают троянский *.php)
 
>Познать секрет 2-го ДАО: всегда проверять расширения файлов,
[m]getimagesize[/m] вас спасет.
она определяет тип картинки по ее заголовкам.
 
>она определяет тип картинки
1.
PHP:
GIF87avж  яяяюююэээьььыыыъъъщщщшшшчччццц
................
<?php
 // dima remoteview
 // если не имелось ввиду что getimagesize будет
 //сам назначать расширения файлов
?>

2. Ну не обязательно же картинки, может кто *.zip, *.doc *.pdf etc собирает
 
Для того чтобы надёжно закрыть проблемму аплоада, достаточно разделить поняти файла и его имени. Я например все загруженные пользователями файлы храняю с именами в виде уникальных идентификаторов и неким одинковым расширением :), отдельно храню имя файла связанное с этим идентификатором и отдельно имею скриптец download.php которому передаётся параметр ?id=12432543, а но проверяет наличие файла связанного с этим идентификатором и в зависимости от типа фйла либо отправляет файл как файл либо отправляет файл как изображение (разные заголовки).

Так что можно грузить и xxx.php и xxx.exe всё корректоно загрузится и скачается -)....
 
2ONK: нескромный вопрос, с проблемами кеширования как разбирались?

P.S. Раз уж у нас есть download.php?id=21323 то зачем хранить файлы, не лучше пихнуть все в базу? А то получается что от преимуществ хранения в файлах отказались, а выгод хранения в БД не получили.
 
Автор оригинала: Yurik
Познать секрет 2-го ДАО: всегда проверять расширения файлов, которые закачиваются в фаловую систему
Почему бы не запретить исполнение скриптов в upload-каталоге?
 
Почему бы не запретить
1. как минимум нужно иметь права на .htaccess (AllowOverride +Options)
2. не всегда по фтп можно редактировать файлы .*
3. каталогов может быть много, даже целое дерево может вырасти, да ещё динамически
 
Автор оригинала: Yurik
1. как минимум нужно иметь права на .htaccess (AllowOverride +Options)
2. не всегда по фтп можно редактировать файлы .*
Такие проблемы характерны разве что для халявных хостингов. А там защищать нечего. :)

3. каталогов может быть много, даже целое дерево может вырасти, да ещё динамически
Если каталогов для upload'а НАСТОЛЬКО много, то это по крайней мере странно.
 
Автор оригинала: Yurik
2ONK: нескромный вопрос, с проблемами кеширования как разбирались?

P.S. Раз уж у нас есть download.php?id=21323 то зачем хранить файлы, не лучше пихнуть все в базу? А то получается что от преимуществ хранения в файлах отказались, а выгод хранения в БД не получили.
Вопрос с кэшированием я непонял, я невижу никаких проблемм в отправке любых заголовков клиенту....


Я не вижу необходимости передавать функции хранения вероятно больших файлов базе данных. Нет никакой необходимости в преймуществах базы данных.
Зато я на вскидку вижу два серьёзных недостатка:
1. Если сервер баз данных находится на другом компе, перкачкой файлов будет сильно нагружать сеть.
2. Усложняется реализация докачки (или придётся каждый раз выбирать из базы данных весь файл), я например ещё никогда не резал строки средствами сервера баз данных,, хотя все необходимые функции в мускуле есть.
 
ну, это самая тупая дыра ,которая бывает в сайтах на РНР.
мало того, что адрес получается кривой и неудобный, приходится писать кучу лишнего кода, чтобы его обработать - так еще и ломают его все, кому не лень.
 
а можно поподробней ...
вроде как nuke так же сделан ... и вроде как я пока не замечал чтоб кто-то жаловался что его сломали ....
Ромик объясни пожалуста какие могут быть дыры тут ... просто у меня сделано по токомуже принципу что и nuke

P.S. Спасибо.
 
невижу никаких проблемм в отправке любых заголовков клиенту....
как в анекдоте "не вижу проблем по доставке любых товаров по любым адресам в любые строки"
конкретно: как реализовывал. ответ можн в тред "Заголовки кешировния динамического контента"
 
Сверху