[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Монтировать с одного VPS на другой в одном датацентре



В Mon, 14 Oct 2024 12:06:07 +0300
Eugene Berdnikov <bd4@protva.ru> пишет:

> On Mon, Oct 14, 2024 at 11:02:17AM +0300, Victor Wagner wrote:
> > В Mon, 14 Oct 2024 04:05:56 +0100
> > Misha Ramendik <mr@ramendik.eu> пишет:
> >   
> > > авторизации. Я высылаю линк человеку, он по этому линку нажимает
> > > кнопку и заливает файл, линк перестаёт работать. Если можно как-то
> > > обрабатывать заливаемое CGI по кусочкам (и выдавать при этом юзеру
> > > progress), то я пожалуй понимаю как это реализовать, но это пока
> > > "если".  
> > 
> > Проще считать что в тот момент когда у тебя запустился скрипт и
> > получил multipart/form-data, у тебя уже весь файл на сервере.  
> 
>  Проще, но при таком подходе progress-bar никак не сделать.

Поэтому не надо увлекатсья украшательством и делать прогресс-бары.
 
>  И если бы данные от клиента всегда целиком выкачивались бы на сервер,
>  то это означало бы, что лимит на upload не работает. И это была бы
> дырка для DoS-a. 

Да, конечно. Но скорее всего это решается лимитом на размер тела
запроса на уровне конфигурации веб-сервера

> Обработчик должен выкачивать небольшую часть тела
> запроса, делать разборку заголовков (включая Content-type:
> multipart/form-data), а затем вычитывать сокет/пайп до тех пор, пока
> не будет превышен лимит. При превышении нужно выдать клиенту ошибку и
> закрыть сокет/пайп.

Современные web-сервера не доверяют пользовательским обработчикам. С
недавних пор в apache не доверяют даже Content-Length, выданной
обработчиком клиенту, если не указать специальным образом что
Content-Length от данного обработчика можно доверять, установив
переменную среды ap_trust_cgilike_cl в yes. 
https://httpd.apache.org/docs/current/env.html#special
 


-- 
                                   Victor Wagner <vitus@wagner.pp.ru>

Reply to: