В конфиг Privoxy можно навтыкать HTTP-заголовков. Это окрытие сподвигло меня на розыски стандарта HTTP/1.1 rfc2616. Оказалось, что там нет вызовов к прокси-серверу... да и заголовки "Proxy-Connection" применяются нестандартные... Масла в огонь подлил Fiddler... Здесь ссылки на уйму стандартов, но окончательный ответ так и не найден
В документации к Hypertext Transfer Protocol -- HTTP/1.1 rfc2616 есть немного о прокси-серверах в разделе 14.10 Connection
Вот, как нужно экономить место - вставлять текст справа от видео, вставим в открывающий тег фрейма вот такой стиль:
In []:
style="float:left; margin-right: 10px;"
Если погуглить "Privoxy", то можно найти ролики про настройки конфигурационного файла. В него просто можно добавлять строки http-заголовки. И при помощи этих заголовков подделать все, что угодно. Вот коротенький ролик на эту тему.
Очевидная мысль о том, что проще посмотреть http-headers после сервера, чем изучать тысячи строк конфиг-файлов... пришла ко мне в голову столь неочевидно. Начнем изучение с Википедии:
X-Forwarded-For
Proxy server
Anonymizer
Comparison of proxifiers
Tunneling protocol
List of HTTP header fields
HTTP Header Field Registrations rfc4229
Set up an HTTP proxy to insert a header
Proxy_server forensicswiki
Apache Module mod_proxy
In []:
#В конфигурационном файле есть вот такие строки
## Turn some actions on ################################
{ \
-add-header \
#...
# Вот это из видео (синтаксис не понимаю... видно плохо...)
{\
+add-header {change-x-forwarded-for: 80.22.66.213}\
+add-header {host: 222:333:33:22}\
+limit-connect {80,443)\
}
Код наверху - это моя попытка просто записать то, о чем говорилось в ролике. Чтобы ротировать прокси надо на ходу подменять конфигурационные файлы. Что, конечно, возможно, но довольно глупо. Чем меня Питон не устраивает? За что боролись? Тема эта уде дветс свои плоды ...поюзал (Burp, WireShark, OWAS zap, Fiddler - прокси-перехватчики), в данный момент умиляюсь, глядя на то, как Fiddler вытаскивает заголовки типа:
In []:
User-Agent: WindowsConnectedSearch/1.0 (Windows NT 6.3.0.0.9600.12;x64;SAMSUNG+ELECTRONICS+CO%2E%2C+LTD%2E;355V4C%2F356V4C%2F3445VC%2F3545VC;Mobile;6.3.0;)
А в красивом описании с картинками мне написали, что Note that Fiddler does not support upstream proxy configuration scripts that are accessed using the FILE:// protocol, only those accessed using the HTTP or HTTPS protocols (so far, no one seems to have hit this limitation in the last 6 years).
Я еще не решил, как бороться с этим вызовм (и стоит ли), а мозгу уже хочется зайти в Гугл - приложения. Там какие-то прокси болтались...
Чтобы закончить этот пост надо поянять, а как же происходят переговоры с браузера с прокси-сервером?¶
Действительно, какие заголовки вставлять? А самое главное, куда... Пробуем построить цепочку Chain Fiddler to an Upstream Proxy
In [5]:
from IPython.display import HTML, Image
In [7]:
Image('http://docs.telerik.com/fiddler/images/default-source/SetProxyAddress.jpg')
Out[7]:
To configure Fiddler to send and receive web traffic to and from another proxy between Fiddler and the destination server: Close Fiddler. Open Internet Explorer > Options > Internet Options > Connections > LAN Settings. Click the check box by Use a proxy server for your LAN. Type the address and port number for the upstream proxy. Restart Fiddler. You should now see the upstream proxy listed in the Fiddler About dialog.
In [8]:
HTML('http://lib.ru/WEBMASTER/rfc2068/section-8.html')
Out[8]:
Этот перевод нельзя назвать новым. Потому вот ссылка на сообщество разработчиков Mozilla: HTTP message headers are used to precisely describe the resource being fetched or the behavior of the server or the client. Headers
In [10]:
HTML('http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/web-proxy-connection-header.html')
Out[10]:
Мда.. Прочитал, удивился... Но тут у меня рояль Фидлер в кустах c записью трафика через внешний прокси. Вот так обновляется открытая страница извесного сайта. Запрос на обновление списка прокси браузер делает периодически и автоматически:
In []:
POST http://hidemyass.com/proxy-list/xhr/update/50?1402330169486 HTTP/1.1
Host: hidemyass.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://hidemyass.com/proxy-list/
Content-Length: 3
Cookie: __utma=82459535.1165548706.1401981762.1402326166.1402328724.4;
__utmz=82459535.1401981762.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
__ar_v4=YLTDUEAWPJHIJFMVAGPYUQ%3A20140605%3A5%7CTLB3JJA5IBBEZL2JMKN2XC%3A20140605%3A5%7CYDAKKAPYE5FX3FZCFST7SX%3A20140605%3A5;
km_ai=cpYOtcj7fjDhuVlS9IYFArVT1nw%3D;
km_uq=;
km_lv=x;
PHPSESSID=fcu4ppj82hbhaf8t9kbfgp3eg7;
__utmb=82459535.1.10.1402328724;
__utmc=82459535; kvcd=1402328730487;
km_vs=1
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
q=0
Но браузер уже подключен через внешний свободный прокси (см. последнюю строчку) вот, что он отвечает:
In []:
HTTP/1.0 200 OK
Server: nginx
Date: Mon, 09 Jun 2014 15:53:23 GMT
Content-Type: text/html
Content-Length: 22
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
X-Cache: MISS from ru-30.p.com.linkpc.net
Proxy-Connection: keep-alive
14.10 Connection
The Connection general-header field allows the sender to specify options that are desired for that particular connection and MUST NOT be communicated by proxies over further connections.
The Connection header has the following grammar:
The Connection general-header field allows the sender to specify options that are desired for that particular connection and MUST NOT be communicated by proxies over further connections.
The Connection header has the following grammar:
Connection = "Connection" ":" 1#(connection-token)
connection-token = token
HTTP/1.1 proxies MUST parse the Connection header field before a message is forwarded and, for each connection-token in this field, remove any header field(s) from the message with the same name as the connection-token. Connection options are signaled by the presence of a connection-token in the Connection header field, not by any corresponding additional header field(s), since the additional header field may not be sent if there are no parameters associated with that connection option.
В стандарте действительно нет "Proxy-Connection", а в Фидлере нет "connection-token " ... разберемся, но этот пост пора заканчивать...
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий