/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Form-get fra andre sider
Fra : Jens Rosenkvist


Dato : 06-01-05 04:41

Jeg har lavet en form som indeholder:

<form method='post' ....

<input type='hidden' value='1' name='a'> ....


Siden man bliver sendt til skal ikke ses af alle og derfor laver jeg
dette tjek:

If isNumeric(Request.Form("1")) = true Then
'Vis tekst
Else
'Vis ikke tekst
End If


Spørgsmålet er så om andre kan lave en form og lægge den op på deres
egen side og sende dem videre til min side og derved "snyde" min side?

Sagt på en anden måde, kan man kun hente forms fra samme domæne?

 
 
Jens Gyldenkærne Cla~ (06-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 06-01-05 12:23

Jens Rosenkvist skrev:

> <input type='hidden' value='1' name='a'> ....

> If isNumeric(Request.Form("1")) = true Then

Det skal nok nærmere være

   If isNumeric(Request.Form("a")) Then

(det er navnet der skal requestes, ikke værdien).


> Spørgsmålet er så om andre kan lave en form og lægge den op på deres
> egen side og sende dem videre til min side og derved "snyde" min side?

Ja, forudsat at de ved hvilke variable du skal modtage. Men det er
muligt at nogle browsere vil blokere for det. Du kan tjekke på
referer-variablen for at se hvor der postes fra - men derved risikerer
du også at blokere "gode" folk der bare har blokeret for referer i
browseren.

En anden mulighed er at bruge en kode der ikke umiddelbart kan aflures -
fx en hashværdi af brugerens ip-adresse eller af dags dato.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens Rosenkvist (06-01-2005)
Kommentar
Fra : Jens Rosenkvist


Dato : 06-01-05 16:33

Jens Gyldenkærne Clausen wrote:
> Det skal nok nærmere være
>    If isNumeric(Request.Form("a")) Then

Tastede bare noget ind for eksemplets skyld. Tænkte ikke lige over det.
Det er skrevet korrekt på min side. ;)


> Ja, forudsat at de ved hvilke variable du skal modtage. Men det er
> muligt at nogle browsere vil blokere for det. Du kan tjekke på
> referer-variablen for at se hvor der postes fra - men derved risikerer
> du også at blokere "gode" folk der bare har blokeret for referer i
> browseren.

Hvordan får man fat i referer-variablen?


> En anden mulighed er at bruge en kode der ikke umiddelbart kan aflures -
> fx en hashværdi af brugerens ip-adresse eller af dags dato.

Hvad forhindrer brugeren i, at se en form et sted på siden og derefter
kopiere det over til andre knapper på siden.
Hvor mange knapper man ser, afhænger af hvem man er logget ind som.

Jeg kunne godt ændre det til, at der også blev undersøgt hvem man er
logget ind som på den side knappen fører til, men så skal jeg tjekke i
databasen og jeg ville hellere bare lave ovenstående tjek.
Men kun hvis det er sikkert.


Casper Bang (06-01-2005)
Kommentar
Fra : Casper Bang


Dato : 06-01-05 16:59

> Jeg kunne godt ændre det til, at der også blev undersøgt hvem man er
> logget ind som på den side knappen fører til, men så skal jeg tjekke i
> databasen og jeg ville hellere bare lave ovenstående tjek.
> Men kun hvis det er sikkert.

Hvis man vil snyde med forms, kan man snyde med forms.
Selv om de fleste "lovlige" browsere sender en refererværdi med som du kan
tjekke på, KAN dette omgås hvis man vil.

Den eneste sikre måde er at tjekke på HVER side, serverside.
Du kan eventuelt gemme deres login i en session.



Jens Gyldenkærne Cla~ (06-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 06-01-05 17:49

Jens Rosenkvist skrev:

> Hvordan får man fat i referer-variablen?

Request.ServerVariables("HTTP_REFERER")


> Hvad forhindrer brugeren i, at se en form et sted på siden og
> derefter kopiere det over til andre knapper på siden.

Intet - men hvis du genererer dynamiske værdier og hasher dem så
man ikke umiddelbart kan regne ud hvordan de genereres, kan
brugeren ikke lave en fast form der bryder ind hos dig.


> Jeg kunne godt ændre det til, at der også blev undersøgt hvem
> man er logget ind som på den side knappen fører til, men så
> skal jeg tjekke i databasen og jeg ville hellere bare lave
> ovenstående tjek.

Hvad med at tjekke en session-variabel?
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens Rosenkvist (06-01-2005)
Kommentar
Fra : Jens Rosenkvist


Dato : 06-01-05 23:37

Jens Gyldenkærne Clausen wrote:
> Intet - men hvis du genererer dynamiske værdier og hasher dem så
> man ikke umiddelbart kan regne ud hvordan de genereres, kan
> brugeren ikke lave en fast form der bryder ind hos dig.

Ok. Så er jeg med.

> Hvad med at tjekke en session-variabel?

Jeg bruger cookies til login.

Men det kan jeg ikke bruge direkte til denne side. Problemet er, at
brugere kun skal kunne se deres egne beskeder. Så jeg kan ikke nøjes med
kun at undersøge om brugerne er logget ind, da jeg også skal vide om de
er foratteren.

Vil det så være bedst at løse det ved at bruge en session eller kigge i
databasen?

Casper Bang (07-01-2005)
Kommentar
Fra : Casper Bang


Dato : 07-01-05 12:34

>> Hvad med at tjekke en session-variabel?
>
> Jeg bruger cookies til login.

Forhåbentligt er det ikke KUN brugernavnet du gemmer i en cookie; en cookie
kan nemt forfalskes.


> Men det kan jeg ikke bruge direkte til denne side. Problemet er, at
> brugere kun skal kunne se deres egne beskeder. Så jeg kan ikke nøjes med
> kun at undersøge om brugerne er logget ind, da jeg også skal vide om de er
> foratteren.
>
> Vil det så være bedst at løse det ved at bruge en session eller kigge i
> databasen?

Hvis du skal bruge de samme data mange gange, og de ikke ændrer sig, er en
session often det smarteste, og den løsning der bruger færrest ressourcer.



Jens Rosenkvist (08-01-2005)
Kommentar
Fra : Jens Rosenkvist


Dato : 08-01-05 19:48

Casper Bang wrote:
>>Jeg bruger cookies til login.
>
>
> Forhåbentligt er det ikke KUN brugernavnet du gemmer i en cookie; en cookie
> kan nemt forfalskes.

Jeg har aldrig overvejet, at de kunne forfalskes.
Jeg gemmer dog mere i dem end brugernavn, men det giver ikke vildt
større sikkerhed.

Hvad mener du så man ellers skal gemme i en cookie?
Ville det være en god ide at gemme brugerens kodeord (krypteret) og så
tjekke det hver gang, han besøger siden (i global.asa filen)?


Casper Bang (09-01-2005)
Kommentar
Fra : Casper Bang


Dato : 09-01-05 20:00

> Hvad mener du så man ellers skal gemme i en cookie?
> Ville det være en god ide at gemme brugerens kodeord (krypteret) og så
> tjekke det hver gang, han besøger siden (i global.asa filen)?

Nej, en god idé synes jeg ikke det ville være... enhver der bruger
computeren kan så kopiere cookien, og for eksempel logge ind fra deres egen
computer med den.

Den bedste løsning er efter min mening en session; du gemmer bare
brugernavnet i en session-variabel:
session("brugernavn") = rs("brugernavn")
og hver side brugeren besøger vil kunne hente denne værdi som med enhver
anden variabel. Du skal selv. først smide brugernavnet ind i din session,
når du har tjekket om brugeren giver det rigtige password.



Jens Rosenkvist (10-01-2005)
Kommentar
Fra : Jens Rosenkvist


Dato : 10-01-05 14:21

Casper Bang wrote:
> Den bedste løsning er efter min mening en session; du gemmer bare
> brugernavnet i en session-variabel:
> session("brugernavn") = rs("brugernavn")
> og hver side brugeren besøger vil kunne hente denne værdi som med enhver
> anden variabel. Du skal selv. først smide brugernavnet ind i din session,
> når du har tjekket om brugeren giver det rigtige password.

Ok. Jeg havde ellers lavet det med cookies, så man kun forblive logget
ind efter man havde lukket sin browser. (Selvfølgelige kun hvis man
valgte det.)
Er der så ikke en sikker måde at lave autologin på?

Casper Bang (10-01-2005)
Kommentar
Fra : Casper Bang


Dato : 10-01-05 16:24

> Er der så ikke en sikker måde at lave autologin på?

Nej, det er aldrig sikkert at lave et autologin... de informationer du
gemmer på brugerens computer kan altid kopieres og misbruges på en anden
computer.

Du bliver nødt til at opveje risikoen der er ved at gemme de data på
klientens computer, imod hvor meget gladere dine brugere bliver.
Er det risikoen værd?

Men hvis du vil gøre det, er det smarteste nok at kryptere både brugernavn
og password i cookien, så det ikke er så nemt at hive fat i for en ondsindet
person.



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste