Форум: "Сети";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];
Внизаутефикация на прокси Найти похожие ветки
← →
Kav (2008-01-19 13:01) [0]Перерыл исходники прокси-серверов, но ни в каком нет примера аутефикации пользователей
есть ли такие исходнки или описание как это сделать
← →
DVM © (2008-01-19 15:11) [1]В заголовке запроса должно быть "Proxy-Authorization: Basic " + EncodeBase64(ProxyUserName + ":" + ProxyPassword)
← →
Kav (2008-01-19 16:22) [2]DVM , у меня есть прокси на него коннектятся пользователи и мне надо им либо дать интерет либо нет
и куда мне это нужно примостить "Proxy-Authorization: Basic " + EncodeBase64(ProxyUserName + ":" + ProxyPassword)
← →
DVM © (2008-01-19 16:44) [3]
> Kav (19.01.08 16:22) [2]
Ты делаешь сам прокси или клиентскую программу, которая должна работать через прокси?
← →
Kav (2008-01-19 17:32) [4]DVM,
Делаю сам прокси :)
← →
DVM © (2008-01-19 18:09) [5]Если ты делаешь HTTP прокси, то должен знать принцип его работы. Клиент делает HTTP запрос к прокси, прокси разбирает запрос и делает почти такой же, но уже от своего имени запрос к HTTP серверу.
Если нужен прокси с HTTP Basic авторизацией, то необходимым условием для работы клиента через такой прокси будет особым образом построенный HTTP запрос. В нем будут следующие изменения:
1) Вот обычный запрос безо всяких прокси, направленный непосредственно HTTP серверу:
FRequest := "GET " + Path + " HTTP/" + HTTPVersion + CRLF +
"Accept: */*" + CRLF +
"Pragma: no-cache" + CRLF +
"Cache-Control: no-cache" + CRLF +
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Win32)" + CRLF +
"Host: " + Host + ":" + inttostr(Port) + CRLF;
"Authorization: Basic " + EncodeBase64(UserName + ":" + Password) + CRLF +
"Connection: Keep-Alive" + CRLFCRLF;
2) А вот так запрос будет выглядеть если он направляется проки серверу.
FRequest := "GET http://" + Host + ":" + inttostr(Port) + Path + " HTTP/" + HTTPVersion + CRLF +
"Accept: */*" + CRLF +
"Pragma: no-cache" + CRLF +
"Cache-Control: no-cache" + CRLF +
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Win32)" + CRLF +
"Host: " + Host + ":" + inttostr(Port) + CRLF +
"Authorization: Basic " + EncodeBase64(UserName + ":" + Password) + CRLF +
"Proxy-Authorization: Basic " + EncodeBase64(ProxyUserName + ":" + ProxyPassword) + CRLF +
"Connection: Keep-Alive" + CRLFCRLF;
← →
DVM © (2008-01-19 18:10) [6]Причем в первом случае надо устанавливать соединение с самим сервером, а во втором с прокси сервером.
← →
Kav (2008-01-22 10:09) [7]DVM,
я не очень сильно понимаю работу прокси сервера, я взял
исходник http://www.delphisources.ru/pages/sources/internet/2005_year/alt_http_proxy.html
и хотел его переделать под себя, но не знаю даже с какой стороны к нему подбираться
P.S. сразу скажу в Delphi я хорошо разбираюсь просто не когда не работал с сетью.
← →
DiamondShark © (2008-01-22 10:33) [8]
> я не очень сильно понимаю работу прокси сервера
так пойми. почитай RFC.
А то ты сейчас в ситуации вроде: "Мужики, я не очень умею ездить, куда тут ключ зажигания вставлять?"
← →
Slym © (2008-01-22 10:42) [9]код ужасный, писал наверно сиплюсоид
найди строку if Authenticate(MS) <> -1 и раскоментируй ее...
← →
Slym © (2008-01-22 10:48) [10]Slym © (22.01.08 10:42) [9]
код ужасный
не просто ужастный, а никчемный... месиво из 3х!!! сокетных компонент
← →
Kav (2008-01-22 10:51) [11]DiamondShark,
RFC - что такое и где взять ? вв яндексе куда-то не туда послали :)
Slym,
Окей попробую
← →
Kav (2008-01-22 10:52) [12]>> не просто ужастный, а никчемный... месиво из 3х!!! сокетных компонент
а есть исходники попроще ?
← →
DiamondShark © (2008-01-22 12:10) [13]
> вв яндексе куда-то не туда послали
http://www.yandex.ru/yandsearch?text=RFC+http+proxy+authentication&rpt=rad
← →
Slym © (2008-01-22 13:20) [14]Дарю http://ifolder.ru/5054357
← →
Kav (2008-01-22 16:53) [15]Slym
спасибо щас буду смотреть
← →
Kav (2008-01-24 10:01) [16]А вот еще один вопрос: можно ли сделатьтак что если юзер авторизировался, его пароль держался бы пока он не завершит свой сеанс в Windows ?
← →
Slym © (2008-01-24 10:12) [17]Разобрался в моем коде?
Kav (24.01.08 10:01) [16]
держался
держался где?
В рамках 1 сеанса браузера с сервером пароль хранится в памяти браузера... Можно поставить "галку" сохранить пароль тогда он сохраняется гдето в системе...
← →
Kav (2008-01-24 10:39) [18]Slym, чуть-чуть разобрался (просто времени свободного не было),
У меня проблема такая компы у меня как бы общие т.е. любой сотрудник организацию за него может сеть и поработать ( и мне нужно всети статиску сколько они мегабайт затратили на интернет и на каких сайтах побывали),
И в них есть учетная запись - читатель каждый входит в компьютер под ней
если поставить галку сохранить пароль, то при следущем входе в систему
он уже будет как бы введен, так что это не подходит
P.S. много уйдет времени если делать еще поддержку HTTPS ?
← →
Slym © (2008-01-24 11:15) [19]готовое не проще взять? этих считалок проксей как китайцев на планете... к томуже с кэшированием... и "умным" рефрешем
Kav (24.01.08 10:39) [18]
P.S. много уйдет времени если делать еще поддержку HTTPS ?
15 мин... она там практически реализована...
← →
Slym © (2008-01-24 11:40) [20]
try
FRemoteSocket.Open(RemoteHost,"","",RemotePort);
if AnsiStartsText("CONNECT", Query.Strings[0]) then
begin
ClientSocket.SendLn("HTTP/1.0 100 Continue");
ClientSocket.SendLn("");
end else
begin
for i:=0 to Query.Count-1 do
begin
if not FRemoteSocket.Connected then break;
if Query.ValueFromIndex[i]="" then Continue;
FRemoteSocket.SendLn(Query.Strings[i]);
end;
FRemoteSocket.SendLn("");
end;
DoTunneling(ClientSocket,FRemoteSocket);
finally
FRemoteSocket.Close;
end;
← →
Slym © (2008-01-24 13:20) [21]Slym © (24.01.08 11:40) [20]
ClientSocket.SendLn("HTTP/1.0 100 Continue");
сори...ClientSocket.SendLn("HTTP/1.0 200 OK");
← →
Kav (2008-01-25 10:16) [22]окей, попробую :)
← →
Kav (2008-01-25 11:03) [23]Есть одна проблема, нельзя на yandex зайти в свой почтовый ящик через web интерфейс, с чем это может быть связано ?
← →
Kav (2008-01-26 09:02) [24]имеется в виду через прокси
← →
XakeP (2008-01-27 00:36) [25]О! Я вижу, что нашел интересующую меня тему. Мне тоже нужна программка, но немного по круче. Я хочу сделать со своего кома прокси-сервер. Пробовал использовать разные программы, но так и не нашел такой, которая обеспечила бы все, что мне нужно. Может, кто поможет написать такую.
Итак, что мне надо:
1) аутентификация пользователей, включая их IP
2) возможность ограничения для каждого пользователя скорости входящего и исходящего потоков отдельно, а также смена этих значений в зависимости от количества подключенных пользователей и их активности
3) форма где можно будет увидеть кто с кокой скоростью в данный момент качает/отдает данные и сколько скачал/отдал за текущие сутки/месяц. + сохранить это в файл.
← →
XakeP (2008-01-27 00:36) [26]Удалено модератором
Примечание: дубль
← →
ketmar © (2008-01-27 13:02) [27]2хацкер: почесать репу; потом купить старую железяку за смешное количество долларов; воткнуть туда, например, Linux; настроить iptables и squid; наслаждаццо. писать ничего не надо, честно.
← →
XakeP (2008-01-27 14:33) [28]Не-е-е. Я в линуксе вообще ноль. Мне надо бы что-то под ХР.
Прогу которую подарил Slym © думаю можно немного усовершенствовать для этих целей. Я вчера пробовал немного разобраться с ней. Оказалось, что менеджер закачек не качает. Выдает ошибку:
HTTP/1.0 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="ALTERNATIVE PROXY"
Это можно исправить?
← →
ketmar © (2008-01-27 14:46) [29]натурально, авторизацию включить. ежели оная там верно реализована.
или всё-таки брать инструменты под задачу, а не пытаться придать задаче форму кактуса.
← →
XakeP (2008-01-27 15:08) [30]Сори, не досмотрел :)
Выдает socket error=10053
← →
ketmar © (2008-01-27 15:10) [31]>[30] XakeP(27.01.08 15:08)
логично. ты не представился — тебя отстрелили в стратосферу.
← →
XakeP (2008-01-27 15:15) [32]Неа. Что-то не так. Я в менеджере задал имя пользователя и пароль!
← →
XakeP (2008-01-27 15:31) [33]и сам прокси в этом месте
raise ESocketError.CreateResFmt(@sWindowsSocketError,
выдает ошибку
← →
ketmar © (2008-01-27 15:53) [34]ты будешь смеяться, но raise — оно для того и сделано, чтобы исключение кидать.
а что ты там и где задал — это только одна сторона. я ж сказал: корректность должна быть с обеих сторон. я лично код прокси не читал, но всё равно осуждаю.
← →
XakeP (2008-01-27 16:06) [35]Ну, если кто-то удосужился прочитать код – плиз хелп!
← →
XakeP © (2008-01-27 23:06) [36]а что можете сказать об этом:
_http://www.delphisources.ru/pages/sources/internet/2005_year/alt_http_proxy.html ?
← →
Slym © (2008-01-28 05:35) [37]XakeP (27.01.08 14:33) [28]
Прогу которую подарил Slym © думаю можно немного усовершенствовать для этих целей.
Совершенствуй :)... Этот пример был накидан за пару -тройку 15мин. пауз между работой... Это только пример! т.к. в нем замечен баг который позволяет работать только в рамках "быстрой" сети:r:=Peer1.ReceiveBuf(Buf,Length(Buf));
if r=0 then exit;
s:=Peer2.SendBuf(Buf,r);
ifr<>s
then exit;
а должен терпеливо ждать для досыла и не истерично рвать соединение
← →
ketmar © (2008-01-28 07:38) [38]да там, наверняка, и работа с заголовками вовсе отсутствует. я не читал, но сильно это подозреваю. %-)
← →
Kav (2008-01-28 09:41) [39]Сейчас скачал squid под Windows, посмотреля на него и она мне не понравилась.
← →
ketmar © (2008-01-28 09:44) [40]мне сквид и не под винду не нравится. он, как бы это помягче сказать… не для дома.
Страницы: 1 2 вся ветка
Форум: "Сети";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.006 c