reverse engineering af website's funcktioner

Tags:    xhr oauth dotnet webapp

Hej udviklere.

Jeg har mine unger i en skole som benytter et website til skoleopgaver osv.
Det er lavet i .Net og meget langt hen af vejen en single-page app der er responsiv i design og funktionalitet.

Jeg önsker at kunne skrive en gateway side til mine unger der logger sig ind med mit login og henter dagens lektier.

Jeg skal altsaa finde ud af hvordan jeg logger mig paa og hvordan jeg forespörger paa de data jeg önsker.

Jeg har brugt chromes developer tool til at kikke paa cookies og ajax-kald - og har fundet de posts jeg skal bruge for at faa noget json-data tilbage.

Mit spörgsmaal er nu - hvordan finder jeg ud af login mekanismen?
Hvordan ville du göre det?

Jeg ved at jeg kunne bruge Fiddler til at faa endnu flere oplysninger, WireShark til at dumpe det hele som raa netværks-data - men jeg er usikker paa hvordan OAuth fungerer i .Net - jeg ser spor efter baade noget Aspx login session, noget OAuth login session og en del data paa forskellige steder i login-processen som flyder frem og tilbage som cookies og andre headers.

Jeg orker ikke at bruge alt for meget tid paa det, saa jeg vil höre hvordan udviklere med erfaring i .net og/eller OAuth ville göre for at komme videre.



9 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 9 karma
Sorter efter stemmer Sorter efter dato
Kan det ikke løses med noget cURL, hvorefter du kan sende de requests du har brug for?



Curl kan lave ALLE typer requests og du kan tilgå det med stort set alle programmeringssprog



Login processen klarer du ved at finde ud af hvilken ressource der skal postes til, samt hvilke parametre der skal medtages. Det kan ofte aflæses af sidens normale loginformular (hvis ikke skal du grave lidt dybere, det kan være endpointen ligger i en .js fil, det afhænger af sidens implementering). Når du har det du skal bruge bruger du cURL (eller hvad du nu vælger) til at udføre requesten, siden starter en session, og herefter er du igennem som havde du logget ind manuelt på siden. Det er nu en smal sag at crawle den returnerede side, samle lektierne op og gemme dem i din egen datastruktur.

Sådan ville jeg løse det.



Tak for svar Kristian Lund, men er cURL ikke blot et tool paa samme maade som wget er det?

Eller kan den haandtere cookies, scripts og browser headers i forbindelse med OAuth og et dotnet website?

Uddyb venligst hvordan jeg kommer videre med cURL - jeg vil gerne men jeg kender ikke cURL og forestiller mig at det er perfekt til basic authentication, ssl osv., men saa snart der sker mere end det saa hjælper den maaske ikke saa meget?

Uanset - tak for forslaget, jeg kikker videre paa cURL mens jeg venter paa uddybning.



Hej Jonatan

Det ved jeg faktisk ikke om den kan :) som jeg forstod det skulle du blot have gennemført login-processen og have en aktiv session, hvorefter du allerede havde styr på de ajax kald du skulle lave, og det json du ville få tilbage.

Jeg har aldrig brugt cURL selv, men tænkte det var værd at undersøge om det kunne lade sig gøre på den måde.



Jeg takker.

Det løste en del af mine problemer :D



Jeg er sikker paa at cURL kan en masse, men den er ikke en browser med en körende web-app, vel?

Mit spörgsmaal var, og er stadig - hvordan finder jeg ud af login mekanismen?
Hvordan ville du göre det?

Hvis cURL er svaret, saa fortæl lidt om hvordan du ville göre det med cURL.
At lave et request er intet problem - det kan göres direkte fra .net, Java, php, c++ - selv VB6 hvis det skulle være - blandt mange andre sprog og platforme - og saa er der en trillion apps der tilbyder at lave det for dig, wget og cURL er blot nogle CLI varianter.

Igen - hvordan finder jeg ud af login mekanismen?
Hvordan ville du göre det?

Taste start-siden ind i cURL, trykke enter og saa ordner den selv redirects, skiftende cookies osv. selv?
Vildt hvis det bare virker mod alt out-of-the-box - som danjessen antyder.



Aner ikke om jeg har misset noget i problemstillingen, men er det ikke bare benytte webrequest klassen, og poste og hente;

http://msdn.microsoft.com/en-us/library/debx8sh9%28VS.80%29.aspx


/J



t