Thanks to visit codestin.com
Credit goes to github.com

Skip to content

pfzim/proxy_rd

Repository files navigation

proxy_rd - Прокси сервер предназначенный для перенаправления HTTP трафика
  с возможностью модифицировать исходящие данные с помощую встроеннного
  интерпретатора zlc.

    Маленький прокси сервер, созданный для обхода фильтров корпоративных
  сетей с помощью модификации HTTP заголовков и перенаправления запросов.
    Гибко конфигурируется скриптом на Си подобном языке.
    Преимущественно создавался для работы с web прокси скриптами, но тем
  не менее прекрасно справляется с перенаправление модифицированных запросов
  как на прямую к конечному серверу, так и на другие прокси сервера включая
  самого себя запущенного на удалённой машине слегка кодируя трафик между
  экземплярами. Эта программа не панацея от фильтров! Все зависит от ваших
  знаний и конфигурационного скрипта, который вы напишете, а ещё от
  грамотности админа, который настраивал фильтры.
    Скрипт не безопасен. Утечки памяти программа не отслеживает. Будте
  внимательны, что и какой переменной вы присваиваете.
    Эту программу вы используете на свой страх и риск!

redir_nx.php - веб-скрипт для перенаправления сформированных запросов от
  proxy_rd.
  На вход принимает следующие параметры:
    en=off - входящие параметры не закодированы base64
	log=off - отключить ведения MySQL лога запросов
	debug=on - в конце ответа вывести входящий HTTP заголовок
	filelog=on - включить записть запросов в лог файл
	px=server:port - адрес на который переслать запрос (должен быть
	  закодирован по base64, если en!=off)
	id=uri - строка запроса, если px не определён, то адрес на который
	  пересылается запрос берётся из этой строки (должен быть закодирован
	  по base64, если en!=off) (в любом случае обязательный параметр)
	md=GET|POST - метод с которым собирать исходящий HTTP заголовок
	  (зависит от параметра en). если не задан - берется текущий.
	pl=HTTP/1.1 - протокол с которым собирать исходящий HTTP заголовок
	  (зависит от параметра en). если не задан - берется текущий.
	ci=on - входящий запрос защифрован
	co=on - шифровать исходящие данные
	pm=on - данные для пересылки передаются через POST запрос в поле с
	  названием request. Это может быть как файл и как обычное текстовое
	  поле. На файл влияет параметр ci, а на текстовое поле дополнительно
	  влияет параметр en. Если данный параметр не применяется, то исходящий
	  заголовок собирается из пришедшего к скрипту заголовка.
	  В случае pm!=on исходящий HTTP заголовок собирается из пришедшего
	  скрипту HTTP заголовка, параметров md, id, pl, ua, au
	ua=on - добавлять basic авторизацию в исходящий HTTP заголовок.
	au=user:password - имя и пароль вставляемые в исходящий заголовок, если
	  данный параметр не определен и ua=on, то используются данный пришедщие
	  к скрипту через входящий HTTP заголовок. (зависит от параметра en, ua)
	ps=size - размер буфера для чтения входящих данных. используется только
	  при co!=on
	st=on - HTTP заголовок полученный от удаленного сервера накладывается
	  на заголовок ответа самого redir_nx скрипта, в другом случае данные
	  переданные от удаленного сервера пердаются как есть. (получается как
	  бы двойной HTTP заголовок ответа)


TODO:
  Переделать pm=on. Немедленая отправка из файла без кеширования в переменную.
  Иначе при аплоде будет потребляться большое кол-во памяти.

TODO:

mode=create|read|write&pm=on&px=host:port&id=http://www.example.com/

1 поток:
  создание постоянного соединения
  ожидание/чтение данных не более 25 сек
  (
   как сообщить proxy_rd,
   что соединение закрыто удаленным сервером
   или выход произошёл по таймауту и нужно
   пересоздать поток?
  )

2 поток:
  открытие постоянного соединения
  отправка данных

3 поток:
  закрытие постоянного соединения


history:
  build 890 - zlc скрипт без поддержки функций
  build 941 - zlc с поддержкой функций
  build 945 - в функцию proxy_rd() добавил несколько параметров для
              передачи данных в POST запросе

About

Small proxy for redirect to URL or modify HTTP headers

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published