Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: PHP i CURL dla prawdziwych twardzieli ;-)  (Przeczytany 4925 razy)

goscccccccccccc

  • Gość
PHP i CURL dla prawdziwych twardzieli ;-)
« dnia: 2009-04-07, 22:48:12 »
Hej,


dwa razy w życiu natknąłem się na problem na którym poległem mimo, że czytałem jakieś rozwiązania na stronach www z manualem phpa i dwa razy poległem i po prostu szukałem innego rozwiązania, bo to miało być zastępcze i okazywało się zbyt czasochłonne. Problemu nie rozwiązałem a trochę mi nie daję spokoju i ciekaw jestem czy w ogóle istnieje rozwiązanie. A chodzi o prostą właściwie sprawę. ;p Skrypt php ma ściągnąć jakąkolwiek stronę, która jest dostępna po zalogowaniu się do jakiejś aplikacji używającej połączenia szyfrowanego (https) i metody POST. Oczywiście nie może to być strona która się pojawia po zalogowaniu, ale inna. Z częściowych rozwiązań tego problemu (np. samo zalogowanie na https metodą post - ale nie metodą get lub przy połączeniu nieszyfrowanym bo to banalne) też będę kontent :-)

Jeszcze dla rozjaśnienia wyjaśnię drogę aplikacji: nasz skrypt->logowanie na https/post-> pobranie strony która jest dostępna tylko po zalogowaniu, ale takiej, żeby to nie była strona która sama się pojawia po zalogowaniu tylko jakaś inna.

nie dam swojego kodu bo nie ma sensu jest błędny i jeszcze namąci a w manualu jest dużo przykładów - korzystałem głównie z tych które można znaleźć po wyszukaniu słowa "post".

http://pl.php.net/manual/pl/function.curl-setopt.php

Miłej zabawy ;-)

ZipoKing

  • Gość
PHP i CURL dla prawdziwych twardzieli ;-)
« Odpowiedź #1 dnia: 2009-04-08, 08:54:23 »
Próbowałeś tego scenariusza:
1) Wyświetlasz dowolną stronę (np. stronę logowania, ale może być jakakolwiek inna) - w odpowiedzi w nagłówku otrzymasz zapewne Set-Cookie, z ciastkiem identyfikującym twoją sesję.
2) Wysyłasz POSTem dane logowania (odsyłając jednocześnie ciacho z ID sesji), gdy się poprawnie zalogujesz, to na jakieś 60% dostaniesz nowe ID sesji (session id regeneration, używana w celu zapobiegania ataków typu session fixation) - tak więc za każdym razem musisz patrzeć czy witrynia nie podsyła ci nowego ciacha.
3) Wysyłasz końcowe zapytanie (do strony dostępnej tylko po zalogowaniu) i pobierasz interesujący cię content.

goscccccccccccc

  • Gość
PHP i CURL dla prawdziwych twardzieli ;-)
« Odpowiedź #2 dnia: 2009-04-08, 16:31:24 »
hmm....

z tym punktem pierwszym, to chodzi ci o to, że najpierw pobieram stronę- że tak powiem wchodzę na stronę z logowaniem a dopiero w następnym kroku próbuję się zalogować?

Co do drugiego punktu to  tez problem jest w tym, ze samo logowanie na https-POSt psuje mi krew; ale może rzecz leżała właśnie w pierwszym kroku.

ZipoKing

  • Gość
PHP i CURL dla prawdziwych twardzieli ;-)
« Odpowiedź #3 dnia: 2009-04-08, 17:25:57 »
Ad pkt 1, tak, dokładnie o to mi chodzi - zwracany content de facto nie jest ważny, ważne jest to, aby dostać cookie z id sesji, z którego należy następnie cały czas korzystać i pilnować, aby przypadkiem nie uległo zmianie
Ad pkt 2, obsługa HTTPS w cURLu jest banalnie prosta, więc problem leżał na pewno w pkt 1 ;)