powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / POST файлов на веб-сервер. Разорвать коннект, не дожидаясь конца передачи.
1 сообщений из 1, страница 1 из 1
POST файлов на веб-сервер. Разорвать коннект, не дожидаясь конца передачи.
    #37513820
Фотография bandroid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
POST файлов на веб-сервер. Разорвать коннект, не дожидаясь конца передачи.
Из-за проксей, не поддерживающих HTTP 100 (этот "Expect: 100-continue"), я не могу включать этот заголовок в POST-запрос, следовательно приходится делать один POST-запрос сразу со всем содержимым.

Как в этом случае на сервере защититься от POST со стороны гада, у которого нет кошерного sid? Как можно на сервере в 2-х вариантах - php и CGI (FastCGI/C++) разорвать соединение ещё до окончания передачи всех данных (которых мож.быть много)?

Файлы будут поститься на URI http://example.com/?sid=81728172. Мне нужно порвать соединение, если sid в запросе отличен от заданного. Да, такие вот запросы одновременно с GET и POST-данными, хотя наверное это php-шная терминология, а "?sid=123" - просто часть URI под CGI-названием QUERY_STRING.

В PHP шарю плохо, но вроде бы там на момент передачи управления в скрипт уже доступна вся информация по запросу со всеми пирогами, т.е. запрос уже пришёл целиком, то есть сервер уже принял все вложенные в POST файлы и положил во временный каталог, даже если они были неизвестно от кого и по 100 гигов. Как с помощью PHP рвать соединение неизвестно от кого и без HTTP 100? Если в PHP это невозможно, то возможно ли в FastCGI / C++? Предпочтительнее второе, но если можно на PHP, то как временное решение сойдёт.

То есть я хочу такого поведения: хакер постит гигабайтный файл без sid, на сервер успевает падать килобайт 100, на которые хакер получает TCP ACK (из-за буфферизации и быстрых каналов), параллельно с этим FastCGI-приложение читает строку запроса и понимает, что соединение надо рвать, отправляет какой-нибудь "HTTP 400", по которому сервер желательно закрывает коннект, чтобы клиент больше не получал никаких TCP ACK на данные, которые продолжают с него литься).

Кстати, как отработает веб-сервер, если FastCGI уже "всё понял" и выдал веб-серверу ответ для клиента, а с клиента продолжает литься продолжение файла, который он постит? Это будет "исключение" на уровне HTTP и будет закрыт уровень TCP? Или может попасться такой веб-сервер, который пока не дождётся прихода полного запроса не будет слушать ответы от FastCGI-стороны?

Наверное можно этот sid запихать в "POST-параметры", но это фиолетово.

Спасибо.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / POST файлов на веб-сервер. Разорвать коннект, не дожидаясь конца передачи.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]