Just nu i M3-nätverket
Gå till innehåll

osynlig funktion


Makarena

Rekommendera Poster

Hej,

När man skickar ett värde till samma sida eller annan sida med hjälp av det här:

a href=sida1.asp?strName=" & variabel1 &"

så ser man(användaren) i både statusraden och i adressfältet på sin IE vad som skickas och KAN manipulera lite grand om han vill.

Min fråga är kan man göra det på något annat sätt så att den varken syns eller kan manipuleras?

Tack

Länk till kommentar
Dela på andra webbplatser

  • Svars 51
  • Skapad
  • Senaste svar
Thomas Tydal

Nej, du kan inte göra så att det inte syns och så det inte går att manipulera. Vad du däremot kan göra, för att lösa ditt problem, är att göra så att du märker om någon har manipulerat det.

 

Detta kan du lösa med lite kryptering och en funktion som heter md5. Funktionen finns, vad jag vet, inte inbyggd i asp, men jag gjorde en sökning och hittade den här: http://www.freevbcode.com/ShowCode.Asp?ID=2366

 

Md5 funger så att när du skickar nånting till den så får du en kontrollsiffra tillbaka, kan man säga. Kontrollsiffran består dock av 32 siffror, för meningen är att du aldrig ska kunna få samma kontrolsiffror om du gör någon ändring, och på så vis kan du kolla om någon manipulerat något, för då stämmer inte kontrollsiffrorna.

 

En viktig sak är dock att du tar med en hemlig variabel, en kod, som bara du känner till, för annars kan ju vem som helst manipulera variablerna och skapa nya kontrollsiffror med md5...

 

Nåt sånt här är det jag menar:

 

kod = "Din_hemliga_kod"

kontrollsiffra = md5(variabel1 & variabel2 & variabel3 & kod)

 

Sedan kan du skicka variabel1, variabel2, variabel3 samt kontrollsiffra till användaren och låta honom/henne skicka det mellan sidorna. Koden måste du behålla själv. När din sida sedan tar emot variablerna så gör du en koll:

 

if md5(request.querystring("variabel1") & request.querystring("variabel2") & request.querystring("variabel3") & kod) <> request.querystring("kontrollsiffra") then

' Användaren har manipulerat variablerna. Stanna här och skicka tillbaka användaren till första sidan så han/hon får göra om.

end if

 

* * *

 

Det kanske även fungerar att använda sessioner i asp, men det vet jag inte hur det går till...

 

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Ja, du kan antingen lagra värderna i sessionsvariabler eller göra ett onsynligt formulär och auto-submitta detta.

 

 

Länk till kommentar
Dela på andra webbplatser

Thomas Tydal

Kanske bör tilläggas att det inte finns någon säkerhet i ett osynligt formulär som auto-submittas.

 

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Nja, när du tar emot formuläret kan du ju kolla att det verkligen kommer från den URL det ska.

Men du har rätt, eftersom det körs på klienten så är det ju osäkert ändå.

[inlägget ändrat 2002-05-20 13:16:17 av Mr Andersson]

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Det är en bagatell att göra ett eget formulär och skicka till samma ställe som det riktiga.

 

Länk till kommentar
Dela på andra webbplatser

Hur kan jag koppla en Session variabel till en musklickning?

T.ex:

<a href=sidan1.asp" & session(myName)=variabel1&">Ny länk</a>

 

Ovanstående funkar ju inte...

vad är det för fel?

Tack

 

Länk till kommentar
Dela på andra webbplatser

Thomas Tydal

Sessionsvariabler fungerar så att alla variabler lagras på servern och kopplas till ett id-nummer som lagras hos användaren.

 

Säg t.ex. att Kalle går in på sidan2.asp. Då får Kalle exempelvis id-nummer 42 i en cookie som sparas i hans dator. När du sedan skapar sessionsvariablerna variabel1 och variabel2 så skapas de på din server och associeras med id-nummer 42. Kalle ser aldrig variablerna, utan han ser bara id-numret. Därför kan han inte manipulera dem. Id-numret skyddas dessutom som jag beskrev tidigare, med kryptering (exempelvis md5) så att han inte kan ändra id-numret och låtsas vara någon annan.

 

När Kalle ber att få titta på sidan1.asp så skickas cookien över till din server och identifierar honom som id-nummer 42, varpå servern plockar fram de sessionsvariabler som rör honom.

 

Dvs, om du skapar sessionsvariablerna variabel1 och variabel2 på en sida så "överförs" de automatiskt till alla sidor på din site.

 

 

Länk till kommentar
Dela på andra webbplatser

Thomas Tydal

För att auto-submit ska fungera krävs det ju att Javaskript finns i användarens dator samt att det är aktiverat.

 

Om du avaktiverar Javaskript är det bara att spara html-koden, göra de ändringar du vill, och sedan submitta den.

 

 

Länk till kommentar
Dela på andra webbplatser

Fast som Mr Andersson skriver kan man ju göra en kontroll så att formuläret verkligen skickas från rätt sida. Då kan du inte spara sidan lokalt och sedan skicka det.

 

/Niklas

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Thomas Tydal

Nej, det finns ingen säkerhet i en sådan kontroll heller. Så det är inga problem att spara sidan lokalt och skicka den.

 

 

Länk till kommentar
Dela på andra webbplatser

Thomas Tydal

Om du har tid några minuter samt möjlighet att lägga ut asp-sidor på nätet så skulle vi ju kunna testa...

 

Skapa i så fall en sida med ett forumlär med method="post" som innehåller en input type="hidden" med en variabel som har värdet "10", och som submittas till en annan asp-sida där du först gör en kontroll så att formuläret kommer från rätt sida och sedan kollar ifall variabeln inte har värdet "10" (för i så fall har den ju blivit ändrad, vilket inte ska gå). Och har variabeln blivit ändrad så skriver du ett "lösenord".

 

Sen ger du mig adressen till sidan så ska jag försöka ändra värdet och få fram "lösenordet".

 

Okej? :-)

 

Har du inte möjlighet till det kan jag ju bara berätta direkt hur man gör, men det brukar bli lite tydligare om man exemplifierar...

 

 

Länk till kommentar
Dela på andra webbplatser

HeavyMental

 

Om man använder frames på sin sida, så ser man inte i addressfältet vad som skickas och vad sidorna heter och sånt.

 

Tex www.minsida.nåt/default.asp innehåller 2 ramar med meny.asp och main.asp .. om du har en länk på main.asp som går till main2.asp?name=användare syns inte denna adressen i addressfältet utan fortfarande bara www.minsida.nåt ..

 

Så för att det aldrig ska synas nåt annat i addressfältet än just www.minsida.nåt så kan du ju göra en sida med en ram som innehåller dina sidor..

 

// Admin på lunarkonkurrenten

http://nexxuz.jensite.com \

Länk till kommentar
Dela på andra webbplatser

Spännande!

gå till www.sprintern.com/test och fixa så du får fram "lösenordet".

 

Berätta inte på en gång hur du gör, vill gärna klura på det ett tag och se om jag kommer på hur du gör och hur man kan hindra det.

 

/Niklas

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

 

Jag vet! :D

 

Tillägg:

Du kollar inte om du får inte en siffra heller.. får du inte det så blir det typemismatch :)

 

Ciao,

Anders

-q...

[inlägget ändrat 2002-05-20 15:59:26 av Anders N]

Länk till kommentar
Dela på andra webbplatser

Hmm, jag gissar att du på något sätt ställer in din webbläsare att inte skicka servervariabler? Fast jag hittar inga sådana inställningar..

 

Hur gör du och hur skyddar man sig? Är det sessionvariabler eller krypterade värden som gäller?

 

/Niklas

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Thomas Tydal

> gå till www.sprintern.com/test och

> fixa så du får fram "lösenordet".

 

qwerty...

 

 

> Berätta inte på en gång hur du gör,

> vill gärna klura på det ett tag och

> se om jag kommer på hur du gör och

> hur man kan hindra det.

 

Visst, klura på du. Fast det går inte att hindra, utan du måste använda kryptering som jag har visat tidigare för att försäkra dig om att variabler inte har ändrats.

 

 

Länk till kommentar
Dela på andra webbplatser

 

"Referrer" är ett fält som webbläsaren skickar när den går till en sida.

 

I vissa webbläsare kan man säkert välja vad den skall skicka, eller OM den skall skicka det. Det kan man även göra i vissa personliga brandväggar.

 

Det finns inget som hindrar en från att välja referrer godtyckligt, men, vad jag vet så kan man i IE inte välja bort/ändra det, men, man kan ju till exempel manuellt telnet:a till webbservern och skriva vilken referrer vill :)

 

Man skall och kan inte lita på referrer eftersom den ofta inte skickas, eller kan ändras godtyckligt.

 

Det jag gör, är att jag har en lokal proxyserver på datorn, och trafiken går genom den. Då kan jag lätt ändra vad jag vill... antingen inkommande så att det står ett annat nummer där redan när IE ser sidan, eller utgående så att den skickar ett annat nummer. På det sättet behöver jag inte bry mig om att ändra referrer, utan jag ändrar i html-koden istället.

 

Ciao,

Anders

 

Länk till kommentar
Dela på andra webbplatser

Oskar Hansson

Men kan man inte öppna ramen i ett nytt fönster och se nfo:n i adressfältet?

 

/Oskar

 

__________________________________________________

 

Laozi - "Truthful words are not beautiful; beautiful words are not truthful"

 

 

Länk till kommentar
Dela på andra webbplatser

Thomas Tydal

> Hmm, jag gissar att du på något sätt

> ställer in din webbläsare att inte

> skicka servervariabler?

 

Det du kallar servervariabler bestäms, precis som du är inne på, av webbläsaren på klienten.

 

I det här fallet är jag min egen webbläsare, ansluter till din server (eller s10.dknet.se rättare sagt) och talar om jag ville POST:a en variabel med namnet test, med valfritt värde, till sidan /test/test.asp på www.sprintern.com samt att jag vill tala om att jag kom från sidan http://www.sprintern.com/test/. När servern får dessa data skickar den dessa direkt vidare till din test.asp och så får den behandla dem. Den kollar värdet på test och så skickar den ett svar beroende på det.

 

> Är det sessionvariabler eller

> krypterade värden som gäller?

 

Ja, det är krypterade värden som gäller. Sessioner använder sig av krypterade värden.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...