FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
Hej!
Jag har en hobby sajt som jag försöker sätta upp en shop på. Jag vill länka från en sida med en produkt på: http://www.alternativephotography.co...test_link.html Länken ser ut så här: test link Till en sida där film_timezero2.html filen visas i framen som heter 'mainShop' Den här sidan: http://www.alternativephotography.co...op_product.php Koden ser ut så här: <?php echo $content; ?> Här är hela framesettet: ----------- <frameset rows="178,*,35" cols="790" frameborder="no" framespacing="0"> <frame src="../common/aphead_shop.html" name="apheadShop" scrolling="NO" marginwidth="0" marginheight="0" noresize> <frameset cols="180,610,*" frameborder="no" framespacing="0"> <frame src="../common/left_shop.html" name="leftnavShop" scrolling="NO" marginwidth="0" marginheight="0" noresize> <frame src="<?php echo $content; ?>" name="mainShop" scrolling=auto marginwidth="0" marginheight="0" noresize> <frame src="../common/blank.html" name="empty" scrolling="NO" marginwidth="0" marginheight="0" noresize> </frameset> <frame src="../common/apfoot_shop.html" name="apfootShop" scrolling="NO" marginwidth="0" marginheight="0" frameborder="no" noresize> </frameset> |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Supermoderator
|
Spontan gissning är att register_globals är satt till off
Pröva: <? echo $_GET['content']; ?> Sen kan man diskutera huruvida du öht ska ha den typen av koden då den är sårbara för cross-site scripting attacker. :unsure:
__________________
www.ip2nation.com (ip till land) |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Medlem
|
Funkar alldeles utmärkt! Tackar ödmjukast! :lol:
Vad menar du förresten med sårbar för hackers? Skulle det bli bättre om jag ber min server-master sätta på 'register_global'? Malin |
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Supermoderator
|
http://www.alternativephotography.co...www.google.com
Jag hade fel i mitt tidigare inlägg, det är ingen cross-site-scripting sårbarhet men det är ändå en olägenhet, som kanske borde avhjälpas. Edit: Tog bort länken så detta exempel inte dyker upp i sökmotorerna. WN
__________________
www.ip2nation.com (ip till land) |
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Medlem
|
Ok... och hur gör man det?
Malin |
|||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Medlem
|
Nej, du hade helt rätt!!! Min sajt har blivit 'hijacked' av en Brasiliansk gamesite som gör precis som du visade med 'google' i mitten (deras innehåll där du skrivit google)... går det att avhjälpa på något sätt??? Känns inte alls bra!
Malin |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Supermoderator
|
Citat:
I ditt fall skulle man exempelvis kunna göra något i stil med: Kod:
switch ($_GET['content']) { case 'tillåtensida1.html': case 'tillåtensida2.html': case 'tillåtensida3.html': $content = $_GET['content']; break; default: $content = 'forbjuden_sida.html'; }
__________________
www.ip2nation.com (ip till land) |
||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Mycket flitig postare
|
Citat:
Register_globals är ett otyg som gör ditt jobb till ett helvete om du ska använda dig av authenticering och sessionshantering pga. säkerhetsrisker. Exempel: Om jag, för att markera att en användare är inloggad sätter $_SESSION['loggedin'] = "true"; med register_globals off, så kan inte "surfaren" komma åt den variabeln för att sätta den och gå förbi authenticeringen. Använder jag register_globals och inte använder $_SESSION[''], och varje $_POST['foo'] eller $_GET['foo'] blir istället $foo automatiskt, så kan användaren göra helt enkelt http://www.example.com/mittscript.php?loggedin=true för att sätta min autenticeringsvariabel. Så ditt webbhotell gör rätt. Personligen skulle jag ALDRIG anlita någon med register_globals on. Du begår ett annat misstag. Din input från användaren kontrolleras inte alls. Det är en ajabaja nr 2. Aldrig aldrig ska få en användare mata in något i ditt skript utan att du har dubbelkollat ifall det är godkänt att använda det. /Zoran |
|||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Flitig postare
|
Citat:
Hur ska en användare veta att det är just variabeln "loggedin" som ska sättas till true? Vad jag menar är att sessionvaribaler är gömda och att man inte kan få reda på variabelnamnen utan måste gissa, så vitt jag vet i alla fall. |
|||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Mycket flitig postare
|
Citat:
Ett annat problem är att du aldrig kan släppa det systemet "publikt", eftersom "folket" kan då se vilka variabler du använder och kan på så sätt attackera alla de som använder ditt system. Personligen tycker jag att det är KNÖLIGARE att skriva php-kod med register globals. Man kan inte klart urskilja POST från GET-variabler. /Zoran |
|||
![]() |
![]() |
Svara |
|
|