Avatar billede Slettet bruger
06. marts 2009 - 12:52 Der er 9 kommentarer

Skjule hidden field værdi fra source code

Hej, historien er som følger: Jeg har lavet et site, hvorpå der bl.a. er en google kalender. Jeg vil gerne at nogle brugere har adgang til at indsætte ting i google-kalenderen. For at forsimple processen har jeg bare lavet en knap, der logger brugerne på, så de ikke skal til at taste brugernavn, pass osv.:

<form id="gaia_loginform" action="https://www.google.com/accounts/ServiceLoginAuth?service=cl" method="post">
<input type="hidden" name="continue" id="continue" value="https://www.google.com/calendar/render">
<input type="hidden" name="followup" id="followup" value="https://www.google.com/calendar/render">
<input type="hidden" name="service" id="service" value="cl">
<input type="hidden" name="nui" id="nui" value="1">
<input type="hidden" name="Email"  id="Email" size="18" value="MIN_EMAIL">
<input type="hidden" name="Passwd" id="Passwd" value="MIT_PASS">
<input type="submit" name="Submit" value="Log p&aring; kalender">
</form>

Det virker fint, problemet er bare, at passwordet er tilgængeligt i koden. Derfor går spørgsmålet på, om man på en eller anden måde kan skjule et hidden fields værdi i koden? Umiddelbart tror jeg ikke - men mener at man eks. i php kan loade fra en ini-fil. Måske noget tilsvarende muligt?

Eller andre gode ideer?
Avatar billede keysersoze Guru
06. marts 2009 - 13:00 #1
intet kan skjules i koden, du kan gøre det sværere at læse men aldrig gemme det - men du har mulighed for fx at benytte sessions eller XML.
Avatar billede Slettet bruger
06. marts 2009 - 13:06 #2
hej soze, kan du lokkes til at uddybe?
Avatar billede softspot Forsker
06. marts 2009 - 14:20 #3
Forslag til løsning:

Du kunne lave formularen (login) i to faser, hvor du i første omgang sender forumlaren til klienten med de oplysninger som ikke er så kritiske og en nøgle som kan bruges til at identificere brugeren.

Når brugeren så forsøger at logge på, sender du et AJAX-request til serveren med identifikationsnøglen, som kvitterer med password der indsættes i formularen, hvorefter formularen submittes, som ved normal login...

Det er lidt omstændigt, men du har jo et ansvar overfor dine brugere og dit systems sikkerhed - og for at leve op til det må man ofte gå lidt længere :-)
Avatar billede erikjacobsen Ekspert
06. marts 2009 - 17:27 #4
Det er vel heller ikke nogen løsning. Man kan stadig opsnappe password, men det er kun blevet en smule mere besværligt.

Det man kan gøre, er at lave redigering på sin egen side, og bruge Googles API til kalenderen på sin server/webhotel. Dermed kommer passwordet ikke ud til brugeren.
Avatar billede Slettet bruger
06. marts 2009 - 18:01 #5
erik, det lyder noget omstændigt...

Kan man ikke submitte en form alene ved brug af script (her asp)?
Avatar billede Slettet bruger
06. marts 2009 - 18:06 #6
eks. har php noget der umiddelbart kunne bruges (http://dk2.php.net/stream_context_create/)? Men her er det altså asp.
Avatar billede erikjacobsen Ekspert
06. marts 2009 - 18:12 #7
Det du henviser til, vil blot være mere besværligt end Googles API til kalenderen.

Men det er helt op til dig at vælge: hvis passwordet skal ud på klienten, uanset hvordan, så kan den aflæses af klienten.
Avatar billede Slettet bruger
06. marts 2009 - 18:36 #8
hej erik,

har du evt. en eksempelkode hvor api'en bruges (helst til login selvf. :-D)?
Avatar billede erikjacobsen Ekspert
06. marts 2009 - 18:44 #9
Nej. Jeg har lavet noget i C# en gang, men det kan du ikke sådan lige få. Men læs om det på http://code.google.com/intl/da/apis/calendar/
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester