Форум Рідного Міста
Ви не ввійшли [Ввійти - Зареєструватися]
Вниз

Версія для друку  
Автор: Тема: CGI-програмування
Громов Сергій
Академік
****

Фотографія користувача


Повідомлень: 568
Зареєстрований: 27-1-2003
Місто: Львів кут площі Ринок
Нема на форумі

Настрій: Вже краще

2cents.gif написано 30-1-2006 у 17:30
CGI-програмування


Чи хтось реально займався цьою штукою ?

Бо назріла задача, загальних описів ніби й багато, а от конкретної реалізації з використанням авторизації на проксі - не знайшов. Сквід не впускає, свариться, і правильно робить.

"Хелп мі ато хана" (с)




Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Андрій Пелещишин
Адміністратор
********

Фотографія користувача


Повідомлень: 9191
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі

Настрій: Настрій не вказаний

[*] написано 30-1-2006 у 19:37


Ну я займався.

Щодо авторизації на проксі я не зрозумів - а до чого тут CGI? CGI - це інтерфейс між програмним середовищем та HTTP-сервером, а не проксі




Переглянути профіль користувача Переглянути всі повідомлення цього користувача
volkorny
Дійсний член
***



Повідомлень: 104
Зареєстрований: 1-7-2002
Місто: Львів
Нема на форумі

Настрій: Настрій не вказаний

[*] написано 30-1-2006 у 21:28


Напишіть деталі, допоможемо
Переглянути профіль користувача Переглянути всі повідомлення цього користувача
Громов Сергій
Академік
****

Фотографія користувача


Повідомлень: 568
Зареєстрований: 27-1-2003
Місто: Львів кут площі Ринок
Нема на форумі

Настрій: Вже краще

[*] написано 31-1-2006 у 11:28


От власне така фігня.

Пробую виконати скріпт:

S TXT="GET /ost.php?rax=123456789&sum=9876 HTTP/1.0"_$C(10)
S TXT=TXT_"Proxy-Authorization: Basic "_code_$C(10)
S TXT=TXT_"Host: [url]http://www1.bank.lviv.ua"_$C[/url](10)
S TXT=TXT_$C(10)

(синтаксис трохи специфічний, але зрозумілий я так дУмаю)

Умова того скріпта - запускати зі середини корпоративної мережі, де є файервол 192.168.1.1 і порт доступу до HTTP 3128.

От. До змінної code передаю user:pass кодовані BASE64, все як пише документація. Ніби мало би працювати, але ... на сквіді бачу, що йде запит БЕЗ_АВТОРИЗАЦІЇ !!!

Що я роблю неправильно ?




Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Громов Сергій
Академік
****

Фотографія користувача


Повідомлень: 568
Зареєстрований: 27-1-2003
Місто: Львів кут площі Ринок
Нема на форумі

Настрій: Вже краще

[*] написано 31-1-2006 у 11:31


Забув сказати, вказаний метод працює "з вулиці", де не втикається авторизація...

І ще. Не варто запускати по-за межами банку, бо цей ресурс "забетоновано" з точки зору безпеки :rolleyes:




Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Андрій Пелещишин
Адміністратор
********

Фотографія користувача


Повідомлень: 9191
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі

Настрій: Настрій не вказаний

[*] написано 31-1-2006 у 11:59


То то не CGI-програмування, а програмування Веб-клієнта.
Спробуй пакет libwww - там уже є автоматизація усіх основних дій по отриманню даних зі сервера. У тому числі і робота через проксі-сервер.
Крім того, задається деякі пакети перла використовують змінну середовища (не програми) HTTP_PROXY для визначення проксі
Синтаксис "http://127.0.0.1:3128"




Переглянути профіль користувача Переглянути всі повідомлення цього користувача
Громов Сергій
Академік
****

Фотографія користувача


Повідомлень: 568
Зареєстрований: 27-1-2003
Місто: Львів кут площі Ринок
Нема на форумі

Настрій: Вже краще

[*] написано 31-1-2006 у 13:09


Я не маю наувазі ні перл ні жодну іншу конкретні мову програмування ... йдеться про правильність заповнення заголовку і решти супутних параметрів для виконання методів скрипта.

Вийняв я вказаний софт - 5.5М С-коду, знайти власне те що мені треба досить важко, тому й питаю - чи РЕАЛЬНО хтось тим займався ?




Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Андрій Пелещишин
Адміністратор
********

Фотографія користувача


Повідомлень: 9191
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі

Настрій: Настрій не вказаний

[*] написано 31-1-2006 у 13:14


Ну бачиш, я такі речі робив, але за допомогою готових пакетів. Так - дещо (відсотків на 90) простіше :)



Переглянути профіль користувача Переглянути всі повідомлення цього користувача
Громов Сергій
Академік
****

Фотографія користувача


Повідомлень: 568
Зареєстрований: 27-1-2003
Місто: Львів кут площі Ринок
Нема на форумі

Настрій: Вже краще

[*] написано 31-1-2006 у 13:22


Один з варіантів - встановити локально файервол що вміє писати логи доступів, і через нього пройтися звичайним бравзером. Тоді власне і відкриється вся "краса" виконання одиничних команд ... певно й прийдеться це зробити, хоч як не хочеться :(



Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Андрій Пелещишин
Адміністратор
********

Фотографія користувача


Повідомлень: 9191
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі

Настрій: Настрій не вказаний

[*] написано 31-1-2006 у 13:28


Є ще такий варіант - поставити програмулю (собі на комп) Live HTTP - буде всю комунікацію бровзера через HTTP показувати. І вже з неї наколупати потрібних стрічок



Переглянути профіль користувача Переглянути всі повідомлення цього користувача
Андрій Моравський
Академік
****



Повідомлень: 474
Зареєстрований: 17-8-2005
Місто: Львів
Нема на форумі


[*] написано 2-2-2006 у 09:39


може поможе фрагмент який я користаю.... у мене з-під проксі воно працює...

Код:

$Citylink = 'http://meteoprog.com.ua/ua/table.php?cityid=128&days=4';
print "\ndownloading\n\n";
my $u = $Citylink;
my $ua = LWP::UserAgent->new;
$ua->proxy('http' => 'http://10.97.0.254:3128');
$newagent = 'HTTP/1.0 ('.$ua->agent.')';
$ua->agent($newagent);
my $request = HTTP::Request->new(GET=>$u);
$request->proxy_authorization_basic("login", "password");
my $response = $ua->request($request);
print $response->status_line;
print "\n";





Про це йшлося? це правда LWP бібліотека... скачую сайт... але працює через проксі...
Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Громов Сергій
Академік
****

Фотографія користувача


Повідомлень: 568
Зареєстрований: 27-1-2003
Місто: Львів кут площі Ринок
Нема на форумі

Настрій: Вже краще

[*] написано 2-2-2006 у 10:07


Твій приклад дуже нагадує те, що мені треба, але не зрозуміло власне порядку внесення команд у заголовок запиту, не видно - де вказується ІР проксі і ІР власне сайту ... якщо є така змога - викинь інформацію замість порта у файл, затри строку "login:password" і покажи :(



Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Андрій Моравський
Академік
****



Повідомлень: 474
Зареєстрований: 17-8-2005
Місто: Львів
Нема на форумі


[*] написано 2-2-2006 у 10:28


а з заголовками - це, перепрошую, вже не до мене :-(
Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Громов Сергій
Академік
****

Фотографія користувача


Повідомлень: 568
Зареєстрований: 27-1-2003
Місто: Львів кут площі Ринок
Нема на форумі

Настрій: Вже краще

[*] написано 2-2-2006 у 10:38


Цитата:
Оригінальне повідомлення від Андрій Моравський
а з заголовками - це, перепрошую, вже не до мене :-(


Я розумію, але ж запит GET, до якого ти навів приклад, без заголовка й не виконається, тобто твоя прога якщо кидається через авторизацію формує той клятий заголовок !!!!




Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Андрій Пелещишин
Адміністратор
********

Фотографія користувача


Повідомлень: 9191
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі

Настрій: Настрій не вказаний

[*] написано 2-2-2006 у 11:41


може зразу готового бота візьмеш? http://www.w3.org/Robot/

А те, що тебе цікавить можливо є тут http://search.cpan.org/~gaas/libwww-perl-5.805/lib/LWP/UserAgent.pm




Переглянути профіль користувача Переглянути всі повідомлення цього користувача
vovka
Почесний Академік
*****



Повідомлень: 1075
Зареєстрований: 20-12-2002
Місто: Lviv,Ukraine
Нема на форумі

Настрій: впевнений

[*] написано 3-2-2006 у 01:07


Постав php як cgi і використовуй бібліотеку curl. Там роботи на 5хв.

Для c++ теж ця бібліотека є.

Чи це на перлі обовязково зробити ?




Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Громов Сергій
Академік
****

Фотографія користувача


Повідомлень: 568
Зареєстрований: 27-1-2003
Місто: Львів кут площі Ринок
Нема на форумі

Настрій: Вже краще

[*] написано 3-2-2006 у 09:07


Нарешті я проблему вирішив. Наведу результати досліджень ...

Документація пише:

GET /control HTTP/1.1
Host: http://www1.bank.lviv.ua
Proxy-Authorization: Basic c2VyZ2=


Насправді для авторизації на проксі треба було:

GET http://www1.bank.lviv.ua/control HTTP/1.1
Proxy-Authorization: Basic c2VyZ2=


Решта параметрів заголовка принципового впливу на проблему що вирішувалася не мають, тому я їх не вказав, хоча в реаліях варто формувати коректно і все.

Щира подяка всім хто допомагав !!




Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача

  Догори

Статичне дзеркало форуму

Львів
Pоwered by XМB
Developed by Avеnture Media & The XМB Group © 2002-2006



Інші проекти:
Наука-Онлайн - Об'єднання українських науковців
Львів - Фотоблог міста
ІБАС. Інформаційна, бібліотечна та архівна справа - Сучасна освітня спеціальність
School review 4249
Реклама: