Автор |
Сообщение |
Alexey
Junior Member

Зарегистрирован: 21.11.2006
Сообщения: 22
|
Играюсь я тут с Proximodo и натолкнулся на серьезную внутреннюю проблему этой проги. Идея в следующем: При обработке запроса вообще говоря фильтрами серьезно меняется страница, и понятное дело в большинстве случаев при этом измениться ее размер... Так как предугадать размер страницы проксимодо не в силах, то он просто добавляет в заголовки "Transfer-Encoding: chunked" и радуется жизни и размер определять не надо и страницы уходят.... Все хорошо пока он не налетает на прокси (а когда работает цепочка прокси - это реально), который реально знает что такое chunked -ответы. И соответственно в этот момент страница карежится неимоверно (по страничке раскидываются странные цифирки  )) )...
Отсюда вопросы:
1. Как поступает с изменением длины страницы proximitron. Он пересчитывает длину и формирует соответствующий заголовок? Или оставляет заголовок Content-Length со старой длиной (типа сами фильтруйте)?
Просто на вскидку целиком заглатывать страницу, а потом ее отдавать обработанную стремно... (Что мешает серверу отослать страницу в 100Мб например...) Тут уж не до подсчета длины будет
2. Как Proximitron обходится с chunked запросами? Буду благодарен за разъяснения... И вообще Proximitron и HTTP/1.1 дружат?
Или местами???
Соответственно попытаюсь переписать проксимодо.... Чтоб не глумился над здравым смыслом...
С уважением,
Алексей
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Насколько я знаю, если контент подлежит web-фильтрации, то поле Content-Length у него стирается. А вообще с HTTP/1.1 у Прокса всё хорошо ;)
|
|
|
К началу |
Профиль Сообщение |
 |
Alexey
Junior Member

Зарегистрирован: 21.11.2006
Сообщения: 22
|
В смысле стирается???? Если content-Length установить стереть вовсе, то куча программ подразумевает что длина равна 0.... Или все-таки длина пересчитывается корректно?... Вообще говоря надо пересчитывать!
PS А как ведет себя проксимодо мне все больше не нравится...
С уважением,
Алексей
|
|
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Пока вся сраница не профильтруется, все равно результирующий размер не будет известен. Так что если пересчитывать размер, то кроме как "целиком заглатывать страницу, а потом ее отдавать обработанную" ничего не сделаешь.
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Мля, только что видел свой пост! :E Хостер что ли жжот..
В общем, не буду вдаваться, приведу заголовки.
Response Headers - http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html
Напрямую:
Код: |
Date: Thu, 28 Dec 2006 07:48:38 GMT
Server: Apache/1.3.37 (Unix) PHP/4.4.4
P3P: policyref="http://www.w3.org/2001/05/P3P/p3p.xml"
Cache-Control: max-age=21600
Expires: Thu, 28 Dec 2006 13:48:38 GMT
Last-Modified: Wed, 01 Sep 2004 13:24:52 GMT
Etag: "4135cda4"
Accept-Ranges: bytes
Content-Length: 12600
Content-Type: text/html; charset=iso-8859-1 |
С Проксом:
Код: |
Date: Thu, 28 Dec 2006 08:01:19 GMT
Server: Apache/1.3.37 (Unix) PHP/4.4.4
P3P: policyref="http://www.w3.org/2001/05/P3P/p3p.xml"
Last-Modified: Wed, 01 Sep 2004 13:24:52 GMT
Etag: "4135cda4"
Accept-Ranges: bytes
Content-Type: text/html; charset=iso-8859-1 |
ПС: Поля кроме Content-Length удалены соответствующими фильтрами.
|
|
|
К началу |
Профиль Сообщение |
 |
Alexey
Junior Member

Зарегистрирован: 21.11.2006
Сообщения: 22
|
Спасибо!
Ладно попробуем так....
Хотя конечно странно... А проблем не было из-за отсутствия Content-Length? Понятно, что браузеру скорее всего все-равно, а вот скажем в цепочке прокси???
С уважением,
Алексей
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Alexey:
Да чего тебе дался Content-Length -- он разве такой обязательный? По-моему, он требуется только в передаваемых на сервер данных, а в принимаемых по-желанию.
|
|
|
К началу |
Профиль Сообщение |
 |
Alexey
Junior Member

Зарегистрирован: 21.11.2006
Сообщения: 22
|
Да мне-то не жалко  ... Собственно я ж историю вопроса рассказывал... Просто начал разбираться почему proximodo chunked ответы лупит....
Вот и выяснилось что проксомитрон просто удаляет Content-length, а проксимодо пытается чанков наделать.... На мой взгляд самым правильным было бы пересчитывать длину... если уж такие заголовки есть...
PS Тут рылся по инету: народ целый класс хакерских атак придумал высылая несоответствующее реальности content-length ил посылая несколько content-length в одном запросе... Ладно, лирика все это.
|
|
|
К началу |
Профиль Сообщение |
 |
Partyzan
Platinum Member

Зарегистрирован: 15.02.2005
Сообщения: 319
|
Alexey писал(а): |
Тут рылся по инету: народ целый класс хакерских атак придумал высылая несоответствующее реальности content-length ил посылая несколько content-length в одном запросе |
А вот в этом месте поподробнее, плиз. Если что, в раздел Безопасность перенесем посты в качестве новой темы.
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Partyzan:
Если что, можно и в разделе Безопасность спросить, чтобы не оффтопить ;)
Вот здесь есть информация. Я как-то тоже видел статью про атаки в заголовках, в основном на веб-сервера и экзотические прокси. Но с тех пор столько версий сменилось..
|
|
|
К началу |
Профиль Сообщение |
 |
|