Найти - Пользователи
Полная версия: Декодирование перехваченных http пакетов
Начало » Python для экспертов » Декодирование перехваченных http пакетов
1 2 3 4
akolesnikov
Вариант использовать что-то типа safesquid не подходит - мне не для использования, а для демонстрационного проекта. Все равно спасибо.
zheromo
Вот написал на коленке

from paste.proxy import TransparentProxy
from webob import Request
from webob.exc import HTTPForbidden

class SimpleProxy(object):

def __init__(self, proxy):
self.proxy = proxy

def do_proxy(self, req, environ, start_response):
req.remove_conditional_headers()
resp = req.get_response(self.proxy)
resp.decode_content()
return resp

def __call__(self, environ, start_response):
req = Request(environ)
resp = self.do_proxy(req, environ, start_response)
return resp(environ, start_response)

class XXXProxy(SimpleProxy):

def do_proxy(self, req, environ, start_response):
resp = super(XXXProxy, self).do_proxy(req, environ, start_response)
if not self.valid(resp.body):
return HTTPForbidden()
return resp

def valid(self, body):
return not 'xxx' in body


def main():
app = XXXProxy(TransparentProxy())
from paste.httpserver import serve
serve(app, 'localhost', 3127)

if __name__ == '__main__':
main()
akolesnikov
Огромнейшее человеческое спасибо, разобрался.
asilyator
zheromo, а можно так сделать вот что http://python.su/forum/viewtopic.php?id=8901 ?

akolesnikov, и как успехи с ловлей пакетов? TCP reassembling делать уже научился (хотя для заголовков это не очень принципиально)?
akolesnikov
Я перешел к работе с прокси. Удобнее и проще.
asilyator
А по http://python.su/forum/viewtopic.php?id=8901 идеи есть? Как ты проки делал - готовый брал, или свой майстрячил?

>Я перешел к работе с прокси. Удобнее и проще.
Ясен фиг :) Иначе по понятиям надо корректно реализовать обработку ip/tcp.
akolesnikov
Использую пример zheromo, все устраивает.
asilyator
А тебе просто логить надо было, или перехватывать / модифицировать?
akolesnikov
Модифицировать не надо, просто выявлять.
asilyator
Мне модифицировать надо. Будет работать?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB