18. november 2007 - 13:26Der er
8 kommentarer og 1 løsning
Login (post og get), samt sikkerhed
Hej, jeg sidder lige og roder med et login system der kalder en javascript funktion når der bliver trykket på submit knappen. Den funktion tager så værdierne fra bruger- og kodeord felterne og sender dem til et php dokument, der tjekker om de står overens med en bruger i databasen, og hvis de gør det, bliver der udskrevet et ét-tal som så bliver modtaget af javascript funktionen (get-metoden) og så bliver brugeren ellers gjort opmærksom på at han er logget ind. Problemet er bare det at lige nu sender jeg bruger og kodeord værdierne i url'n som parametre, da jeg bruger get-metoden så jeg kan få fat i det der bliver udskrevet af php-dokumentet. Det er bare ikke så godt, da der så ikke er noget særligt sikkert over det! Det jeg så tænkte var; jamen, kan man ikke kryptere det? Er der nogen god måde at gøre det på? En anden løsning er at sende det med post-metoden. Men så er det ikke muligt at modtage det dokumentet udskriver - eller har jeg misforstået noget? For det ville være smart at kunne sende det med post metoden og derefter modtage det dokumentet udskriver, for så løser det også et andet problem der lyder at jeg kan komme ud for, at der skal sendes tekst på over 2000 tegn, og det går jo ikke med get metoden. Men problemet er, at når de tegn er sendt, skal jeg modtage det dokumentet der modtog tegnene, udskriver.
Bemærk dog her, at der kommunikeres med en XML-fil, hvilket det bør være frem for blot en tekst eller HTML-fil. Sig til, hvis du har brug for hjælp til den.
Først og fremmest; hvorfor bør der udelukkende kommunikeres med xml-dokumenter og ikke ren-tekst filer. Jeg kan komme på eksempler, hvor siden hurtigere executes hvis det er ren tekst, end hvis det er xml. Bør det så ikke være ren tekst der skal bruges i sådanne tilfælde?
Jeg har ydermere lige fundes ud af at selvom man sender med post-metoden, så kan man stadig modtage det dokumentet udskriver. Men jeg har lidt spørgsmål til dit eksempel og noget du vidst ikke har svaret på...
Hvorfor bruge window.XMLHttpRequest og ikke document? Er det nogen smart måde at kryptere indholdet på, så folk med f.eks. firebug ikke kan se hvad der bliver sendt mellem klienten og severen? Eller er det noget helt andet end kryptering der skal bruges?
Jeg har også lige opdaget at når jeg sender materialet med post-metoden, så forstår den ikke æøå ... allerede har jeg løst problemet tidligere, hvor jeg indsætte header('Content-Type: text/html; charset=ISO-8859-1'); i php-dokumentet. Men det ser ikke ud til at klare det, når jeg bruger post-metoden.
Jeg laver en XMLHttpRequest således, hvor xmlHttp indholde hvilken request metode browseren nu kan håndtere:
xmlHttp.onreadystatechange = function () { // noget kode der skal executes }; xmlHttp.open('post', 'URL_DER_SKAL_SENDES_TIL', true); xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttp.send(TING_DER_SKAL_SENDES_MED);
jeg ved ikke om det er der i der skal laves noget, så den kan håndtere æøå?
Der er jo en grund til, at det hedder XMLHttpRequest og ikke HTMLHttpRequest. Det er ikke beregnet til at læse ren tekst eller HTML, og det er derfor ikke hensigtsmæssigt at bruge en af disse. Man rådes til enten at overføre data med XML eller JSON (som der er skrevet en artikel om i JavaScript-kategorien). Jeg kan ikke give dig en bedre forklaring, da "Ajax" også er rimelig nyt for mig.
Jeg bruger følgende kode i filen xml.asp, som jeg henter med Ajax: ------------------------------------------------------------------- <%Response.ContentType="text/xml"%><?xml version="1.0" encoding="iso-8859-1" ?> <data xml:lang="da"> <output><span id="frugt">Æble</span></output> </data> ------------------------------------------------------------------- Og det fungerer helt fint. "Æble" bliver returneret uden problemer.
Hvis du stadig prøver med text frem for xml, bør du heller ikke have linjen: if(req.overrideMimeType) req.overrideMimeType("text/xml"); Ved ikke, om den ligefrem kan ødelægge tegnsættet, men den er i hvert fald ikke god, hvis du insisterer på text.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.