Avatar billede thomic Nybegynder
17. juli 2009 - 02:39 Der er 1 kommentar og
1 løsning

Fare ved isset?

Jeg er noget grøn på php-området, så jeg tænkte, jeg hellere måtte spørge herinde for at være på den sikre side.

Jeg har en kode der ser nogenlunde sådan her ud:

<?php

if (isset($navn)) {

echo "".$navn."";

?>

Hvormed den jo printer hvad der er efter ?navn= i min url.

Her er det så, jeg tænker, at en hacker-type kan indsætte sin egen kode i min URL og dermed gøre ting og sager.

Har jeg ret, og i så fald, hvordan beskytter jeg mig mod det?
Avatar billede arne_v Ekspert
17. juli 2009 - 04:36 #1
En hacker kan ikke få udført server side kode via den konstruktion.

Men et link kan indeholde ondsindet JavaScript.

Du bør bruger validering af indholdet.

PS: Jeg antager at det er en "forkortelse" i spørgsmålet at du bruger $name og ikke $_GET['name'], men at du naturligvis bruger $_GET['name'] i din rigtige kode !
Avatar billede mrgumble Nybegynder
17. juli 2009 - 11:13 #2
I dit tilfælde, hvor du bare udskriver, sker der ikke så meget. Men hvis hackeren er ond, kan han få dit script til at gå ned og derved få vist nogle af de bagvedliggende funktioner (f.eks. hvilken server der køres) der giver ham bedre muligheder for at hacke.

Derudover kan det være at et andet sted har følgende:

if ($logon) {
  echo $mycreditcardinfo;
}

$logon bliver naturligvis sat til sand, når du har valideret brugerens login, men hvis hackeren indsætter i urlen ?logon=1 kan han omgå det.

Alt dette forudsætter, at register_globals er sat til, læs mere her: http://us3.php.net/manual/en/faq.using.php#faq.register-globals
Jeg kan stærkt anbefale, at man slår det fra, og som arne_v skriver, validere indholdet fra brugeren. Derudover er den god idé at deklarerer alle sine variabler, som f.eks.:
$logon = false;
if ($username = 'admin' && $password = '123') {  // Et dumt eksempel på kodeord...
  $logon = true;
}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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