/ 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
spørgsmål til debat
Fra : Tommy Andersen


Dato : 09-01-03 17:49

Jeg arbejdet lidt med den typiske problemstilling ang. paramenter i
headeren...

De fleste der har en database koblet op til en hjemmeside og bruger
"ID=12334" i headeren kan være udsat for sikkerhed huller, i deres system,
man kan være heldig at gætte sig frem til en anden post ved at skrive nogle
andre nummer.

en måde jeg har udviklet, er at benytte en simple crypterings algorime til
forvaske ID i headeren, og dermed gøre den ulæslig for brugeren. dette
sikker IDen for altid.

Det fører mig frem til spørgsmålet,
Hvad mener i om dette?
jeg syntes ikke jeg har set den form for beskyttelse på andre sites, Har i??
Kan gøre noget andet for at beskytte ID i headeren??

ta



 
 
Jakob Andersen (09-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 09-01-03 18:03

"Tommy Andersen" <tadata@privat.dk> wrote
> De fleste der har en database koblet op til en hjemmeside og bruger
> "ID=12334" i headeren kan være udsat for sikkerhed huller, i deres system,
> man kan være heldig at gætte sig frem til en anden post ved at skrive
nogle
> andre nummer.

Hvis der blot er en ordentlig databasestruktur kan jeg ikke se hvilke
problemer det er du prøver at undgå.

--
Jakob Andersen



Tommy Andersen (09-01-2003)
Kommentar
Fra : Tommy Andersen


Dato : 09-01-03 18:26


"Jakob Andersen" <jakob@effectus.dk> wrote in message new
>
> Hvis der blot er en ordentlig databasestruktur kan jeg ikke se hvilke
> problemer det er du prøver at undgå.
>

Hvis man kunne forstille sig at man kunne tilmelde sig et site og derefter
modtog et link med email,

dette link kunne så være bekræftelsen på at man ønskede at deltage i et
forløb der måske kostede penge for brugeren.

man kunne så forstille sig, at en person leget lidt i HTMLkoden og prøvet at
kører kode direkte selv, i browseren skrive linie.(kan huske hvad den
hedder(--:)
og ved et heldig øjeblik ramte et andet nummer, for derefter at bekræfte en
anden ID ved et uheld.

dette kunne ikke gøres ved at kryptere paramenterne.

test.asp?ID=(xEYÇß2>9)3 (krypteret ID)

test.asp?ID=-1404353623 (ikke krypteret ID)

(det to links er faktisk det samme link)

Det behøver da ikke at have noget at gøre med en Database struktur, Den kan
jo være fin nok.

sandsynligheden for at ramme en krypteret ID må da siges at være betydlig
mindre iforhold til en ikke krypteret ID

TA







Jakob Andersen (09-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 09-01-03 20:09

"Tommy Andersen" <tadata@privat.dk> wrote
> Hvis man kunne forstille sig at man kunne tilmelde sig et site og
derefter
> modtog et link med email,

Ahh.. Okay nu er jeg med. Jeg troede at du mente på f.eks. et website hvor
brugeren ikke skulle kunne se andre brugeres ID.

> dette kunne ikke gøres ved at kryptere paramenterne.
>
> test.asp?ID=(xEYÇß2>9)3 (krypteret ID)
> test.asp?ID=-1404353623 (ikke krypteret ID)
>
> (det to links er faktisk det samme link)

Okay, men hvis du bruger en af de gængse algoritmer skal der ikke den store
hjerneaktivitet til at lave et lille script der finder ud af hvad ID'et rent
faktisk er da dit oprindelige ID jo stadig er nummerisk. Så det ville nok
være dumt at lave ovenstående med f.eks. md5 eller sha1 hvis du især hvis du
starter fra 0 med din nummerering.

Hvis jeg var dig ville jeg istedet satse på at bruge en GUID lignenedværdi
istedet så kan du jo evt. kryptere dette for at gøre det lidt sværere for
folk at gennemskue

Hvis du f.eks. bruger SQL Server kan du danne en sådan unik identifikation
vha. NEWID funktionen evt. som defaultværdi i et felt.

Hvis du ikke har en funktion til noget GUID lignende noget i enten din
database, så er der masser af 3. parts komponenter der kan.

F.eks. kan du hvis der er installeret Windows Script Host på din server
generere et GUID sådan her:
<%
Dim objGUID
Set objGUID = Server.CreateObject("Scriptlet.TypeLib")
Response.Write objGUID.GUID
%>

--
Jakob Andersen



Jesper Stocholm (09-01-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 09-01-03 20:12

Tommy Andersen wrote :

> man kunne så forstille sig, at en person leget lidt i HTMLkoden og
> prøvet at kører kode direkte selv, i browseren skrive linie.(kan huske
>
> dette kunne ikke gøres ved at kryptere paramenterne.
>
> test.asp?ID=(xEYÇß2>9)3 (krypteret ID)

hvordan krypterer du ?



--
Jesper Stocholm - http://stocholm.dk

Svar til gruppen og ikke til mig privat !
Skriv under det du svarer på - www.usenet.dk/netikette/citatteknik.html

Tommy Andersen (10-01-2003)
Kommentar
Fra : Tommy Andersen


Dato : 10-01-03 00:19

Hvordan jeg kryptere....

kunsten er at benytte en algorime der kan kyptere en string ved hjælp at
nøgle værdi.

Denne nøgleværdi skal selvfølgelig være en hemmelig kombination af
tal/bokstaver som kun du kender og dem du udvikler for.

Derefter kan du generer din nye værdi som det passer dig, med nøgle værdien
som masterkey.

Jeg benytter en algorime funktion der hedder RC4 , den har den fordel at den
både kan dekryptere og kryptere i samme funktion

jeg har prøvet MD5 men jeg har ikke kunne finde en måde at dekrypter
stringen på når jeg først har krypteret stringen, Nogle der kender til en
måde til at dekryptere en MD5 algorime,så man i meget gerne sige til...

ellers er fremgangsmåden ret simple,

1. har en ID string, der skal påhæftes et link

2. kryptere ID stringen

3. genrer din HTML kode

4. brugere klikker på linket

5. server modtager og requester din ID fra headeren

6. Server dekryptere din ID

7. Server laver opslag med den dekrypteret ID

8. Server en genrer HTML med Data fra DBe


>
> hvordan krypterer du ?
>
>
>
> --
> Jesper Stocholm - http://stocholm.dk




Jakob Andersen (10-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 10-01-03 01:12

"Tommy Andersen" <tadata@privat.dk> wrote
> jeg har prøvet MD5 men jeg har ikke kunne finde en måde at dekrypter
> stringen på når jeg først har krypteret stringen, Nogle der kender til en
> måde til at dekryptere en MD5 algorime,så man i meget gerne sige til.

Så vidt jeg har forstået, med mit begrænsede kendskab til kryptering, er
fidusen ved MD5 netop at den ikke skal kunne dekrypteres.

> ellers er fremgangsmåden ret simple,
> 1. har en ID string, der skal påhæftes et link
> 2. kryptere ID stringen
> 3. genrer din HTML kode
> 4. brugere klikker på linket
> 5. server modtager og requester din ID fra headeren
> 6. Server dekryptere din ID
> 7. Server laver opslag med den dekrypteret ID
> 8. Server en genrer HTML med Data fra DBe

Min fremgangsmåde ville være noget simplere:

1. HTML kode genereres med GUID
2. Bruger klikker på linket
3. Server genererer data via opslag på baggrund af GUID

--
Jakob Andersen



Jesper Stocholm (10-01-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 10-01-03 10:45

Tommy Andersen wrote :

> Jeg benytter en algorime funktion der hedder RC4 , den har den fordel
> at den både kan dekryptere og kryptere i samme funktion

jeps ... det hedder "symmetrisk kryptering".

> jeg har prøvet MD5 men jeg har ikke kunne finde en måde at dekrypter
> stringen på når jeg først har krypteret stringen, Nogle der kender til
> en måde til at dekryptere en MD5 algorime,så man i meget gerne sige
> til...
>
> ellers er fremgangsmåden ret simple,
>
> 1. har en ID string, der skal påhæftes et link
> 2. kryptere ID stringen
> 3. genrer din HTML kode
> 4. brugere klikker på linket
> 5. server modtager og requester din ID fra headeren
> 6. Server dekryptere din ID
> 7. Server laver opslag med den dekrypteret ID
> 8. Server en genrer HTML med Data fra DBe

jeg synes at det virker meget omstændigt. Du skriver i dit første indlæg,
at du gerne vil sikre dig, at man ikke kan "gætte" en andens data, dvs fx
ændre URI

/?uid=324

til

/?id=325

Men for at sikre dig imod dette, behøver du jo ikke at kryptere dit ID -
du kan nøjes med at signere det, så det ikke kan ændres. Her kan du bruge
fx MD5 som Jakob nævnte. Det du skal gøre er at anvende en "keyed hash-
signagure". Du har - som i dit tilfælde - en hemmelig nøgle på mindst 128
bits. Når du fx skal over føre værdien 345 i URI, så udregner du

MD5(nøgle + værdi) ' her skal + forstås som konkatenering/appending

og denne værdi medsender du i din URI - der altså kommer til at se
således ud:

/+id=345&checksum=25345643yebhdcdfvsdcgec

Når du modtager disse værdier fra en browser, så checker du, at checksum
er lig md5(nøgle+id).

Pas i øvrigt på med at bruge krypteringsnøgler, der har for små
nøglestørrelser. I dine eksempler viser du, at

test.asp?ID=(xEYÇß2>9)3 (krypteret ID)

test.asp?ID=-1404353623 (ikke krypteret ID)

Man kunne godt forestile sig, at det ikke ville være svært at bryde dene
relativt nemme kryptering. Endelig er der jo en grund til at RC4 blev til
RC5 - den var for nem at bryde.

og ja ... det bruges nogle steder. Jeg har fx brugt det på
www.usedbooks.dk, hvor jeg synes det virker ret godt.



--
Jesper Stocholm - www.stocholm.dk - www.asp-faq.dk
** De andre siger, at han er 16 **
Svar venligst til gruppen og ikke til mig privat !
Skriv under det du svarer på - www.usenet.dk/netikette/citatteknik.html

Jesper Stocholm (10-01-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 10-01-03 14:41

Tommy Andersen wrote :

> man kunne så forstille sig, at en person leget lidt i HTMLkoden og
> prøvet at kører kode direkte selv, i browseren skrive linie.(kan huske
> hvad den hedder(--:)
> og ved et heldig øjeblik ramte et andet nummer, for derefter at
> bekræfte en anden ID ved et uheld.
>
> dette kunne ikke gøres ved at kryptere paramenterne.
>
> test.asp?ID=(xEYÇß2>9)3 (krypteret ID)
>
> test.asp?ID=-1404353623 (ikke krypteret ID)

Efter hvad jeg læser i din beskrivelse af din løsning, så er der noget
jeg ikke helt forstår.

Hvad sker der, hvis jeg laver om på URI og sender

?ID=(xEYtr2>9)3

til din applikation

i stedet for

?ID=(xEYÇß2>9)3

Min pointe er, at kryptering af parametre ikke må stå alene - du er nødt
til at checke, om de dekrypterede værdier er "korrekte" - dette
understøtter RC4 nemlig mig bekendt ikke.



--
Jesper Stocholm - www.stocholm.dk - www.asp-faq.dk
** De andre siger, at han er 16 **
Svar venligst til gruppen og ikke til mig privat !
Skriv under det du svarer på - www.usenet.dk/netikette/citatteknik.html

Tommy Andersen (10-01-2003)
Kommentar
Fra : Tommy Andersen


Dato : 10-01-03 17:41


> Hvad sker der, hvis jeg laver om på URI og sender
>
> ?ID=(xEYtr2>9)3
>
> til din applikation
>
> i stedet for
>
> ?ID=(xEYÇß2>9)3
>
> Min pointe er, at kryptering af parametre ikke må stå alene - du er nødt
> til at checke, om de dekrypterede værdier er "korrekte" - dette
> understøtter RC4 nemlig mig bekendt ikke.
>
Der vil sket det at du vil blive sendt til en fejl side da server ikke kan
finde den ID du prøver at hacke dig til (-:

I det du laver om på URI laver du også om på den krypteret del, og dermed et
andet resultat.
Dette vil give en fejl da resultatet højst sandsynligt vil være vrøvl efter
at server har dekryptet din ID







Jesper Stocholm (10-01-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 10-01-03 17:50

Tommy Andersen wrote :

>
>> Hvad sker der, hvis jeg laver om på URI og sender
>> ?ID=(xEYtr2>9)3
>> til din applikation
>> i stedet for
>> ?ID=(xEYÇß2>9)3
>> Min pointe er, at kryptering af parametre ikke må stå alene - du er
>> nødt til at checke, om de dekrypterede værdier er "korrekte" - dette
>> understøtter RC4 nemlig mig bekendt ikke.
>>
> Der vil sket det at du vil blive sendt til en fejl side da server ikke
> kan finde den ID du prøver at hacke dig til (-:

øeh ... hvad er det så du mener du vinder ved at kryptere din URI ? Om
jeg som ond bruger skal sidde og gætte på en heltals-parameter eller en
tilfældig streng af tegn er for mig ligegyldigt.

> I det du laver om på URI laver du også om på den krypteret del, og
> dermed et andet resultat.
> Dette vil give en fejl da resultatet højst sandsynligt

I mine øjne kan man ikke bruge "højst sandsynligt" til noget. Enten er de
overførte data korrekte - eller også er de ikke. Hvis man alligevel skal
putte data ned i databasen for at finde ud af, om der findes en
tilsvarende ID, så er det imo spildt arbejde at kryptere.

> vil være vrøvl
> efter at server har dekryptet din ID

Hvis du vil sikre dig, at man ikke kan lede efter andre data ved at rette
i URI, så er du nødt til at gå en anden vej - som fx den jeg beskrev,
hvor data signeres. Kryptering er meget godt - men her vil en signering
være bedre.


--
Jesper Stocholm - http://stocholm.dk
www.asp-faq.dk : FAQ for dk.edb.internet.webdesign.serverside.asp
www.usenet.dk/netikette/citatteknik.html : Skriv under det du svarer på
Svar til gruppen og ikke til mig privat !

Carsten Suurland (10-01-2003)
Kommentar
Fra : Carsten Suurland


Dato : 10-01-03 09:34

Hej Tommy

Jeg anvender også noget ala det samme som dig.
Jeg opbygger et XML dokument på serveren, som efterfølgende krypteres, for
til sidst at blive andenvt i mine links.
Jeg har derfor f.eks følgende:

<a href="mypage.asp?parm=ABC123GHT566">Min side</a>

Ofte vælger jeg også at inkludere f.eks. sessionid eller lignende i
ovenstående kryptering.
Så kan jeg altid se (i mypage.asp) om det er et "gyldigt" klik, eller en
gemt/indtastet url.

/Carsten Suurland



Tommy Andersen (10-01-2003)
Kommentar
Fra : Tommy Andersen


Dato : 10-01-03 09:47

Hej Carsten

Kan du give i lille eks.på dette, da det har min interesse(-:


"Carsten Suurland" <removethiscarsten@suurland.dk> wrote in message
news:avm0hp$v9p$1@news.cybercity.dk...
> Hej Tommy
>
> Jeg anvender også noget ala det samme som dig.
> Jeg opbygger et XML dokument på serveren, som efterfølgende krypteres, for
> til sidst at blive andenvt i mine links.
> Jeg har derfor f.eks følgende:
>
> <a href="mypage.asp?parm=ABC123GHT566">Min side</a>
>
> Ofte vælger jeg også at inkludere f.eks. sessionid eller lignende i
> ovenstående kryptering.
> Så kan jeg altid se (i mypage.asp) om det er et "gyldigt" klik, eller en
> gemt/indtastet url.
>
> /Carsten Suurland
>
>



Carsten Suurland (10-01-2003)
Kommentar
Fra : Carsten Suurland


Dato : 10-01-03 10:36

Hej Tommy

Jeg laver lige en artikel omkring det på asp-faq.dk
Der opretter jeg også den nødvendige kildekode.

/Carsten Suurland



Jesper Stocholm (10-01-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 10-01-03 10:46

Carsten Suurland wrote :

> Jeg anvender også noget ala det samme som dig.
> Jeg opbygger et XML dokument på serveren, som efterfølgende krypteres,
> for til sidst at blive andenvt i mine links.

hvilke data ligger der i dit XML-dokument ?



--
Jesper Stocholm - http://stocholm.dk - http://asp-faq.dk
Skriv venligst under det du svarer på og skær det overflødige væk.
Se evt hvorfor på http://www.usenet.dk/netikette/citatteknik.html
Svar venligt til gruppen og ikke til mig privat !

Jens Gyldenkærne Cla~ (10-01-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 10-01-03 14:06

Tommy Andersen skrev:

> De fleste der har en database koblet op til en hjemmeside og
> bruger "ID=12334" i headeren kan være udsat for sikkerhed
> huller, i deres system, man kan være heldig at gætte sig frem
> til en anden post ved at skrive nogle andre nummer.

Spørgsmålet er om det er et problem. Jeg bruger ofte id=xxx til
forskellige visninger hvor det ikke er følsomme data der ligger
bag. Dvs. hvis en person gætter et andet nummer er det ikke noget
problem.

Hvis det drejer sig om sider der skal beskyttes vil jeg klart
foretrække en egentlig loginprocedure, hvor der skal indtastes
brugernavn og password. Her kan du måske gætte et nyt brugernavn
(hvis de ikke er selvvalgte eller tilfældigt genererede), men man
bør ikke kunne gætte et password.


> en måde jeg har udviklet, er at benytte en simple crypterings
> algorime til forvaske ID i headeren, og dermed gøre den
> ulæslig for brugeren. dette sikker IDen for altid.

Det lyder besværligt.


> jeg syntes ikke jeg har set den form for beskyttelse på andre
> sites, Har i??

Jeg har heller ikke set det.


> Kan gøre noget andet for at beskytte ID i headeren??

Brugernavn/adgangskode-par ?
--
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

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

Månedens bedste
Årets bedste
Sidste års bedste