k-r-l Skrevet 27. juli 2008 Del Skrevet 27. juli 2008 Hei, Er det noen her som kan forklare meg hvordan dette med (index.php?side=) fungerer? og hvorfor linkene på siden her ikke fungerer: http://krilar.freehostia.com/steffan/ ?? (Ps. Det er ikke min side, Jeg har bare kopiert siden for å prøve å lære meg noen småting. den vil bli slettet fra serveren når jeg har funnet ut dette.) På forhånd takk Lenke til kommentar
LoS Skrevet 27. juli 2008 Del Skrevet 27. juli 2008 (endret) Hadde vært fordelaktig med PHP-koden din. Forøvrig trenger du ikke target="_self" i det hele tatt siden den vil åpne seg i samme vindu. Endret 27. juli 2008 av LoS Lenke til kommentar
dahwan Skrevet 27. juli 2008 Del Skrevet 27. juli 2008 Vet du i det hele tatt hva dette er? Når du sikter til en php fil i en web browser kan du legge med variabler ved å skrive dem inn etter et spørsmålstegn separert av & www.webside.no/fil.php?variabel=verdi&variabel2=endaEnVerdi Så det er php scriptet i index.php som bestemmer hva som gjøres med variablen. F.eks. inkludere en fil i siden. Lenke til kommentar
k-r-l Skrevet 27. juli 2008 Forfatter Del Skrevet 27. juli 2008 er det ingen måte å finne dette ut på? Er det noen som har en link til hvor jeg kan lese om dette? gjerne lyst til å ha det på min egen side. Lenke til kommentar
dahwan Skrevet 28. juli 2008 Del Skrevet 28. juli 2008 (endret) http://www.tizag.com/phpT/postget.php Du kan ordne en slik link <a href="?page=about">About me</a> Så kan du sette inn følgende PHP script i "content" delen av sida di (en div tag med ID="content" eller noe slikt) <?php // Sjekker om variablen "page" finnes. Hvis den finnes så // inkluderer vi en php fil med verdien til "page" som filnavn // fra mappen "pages" if($_GET['page']) { include("pages/" . $_GET['page'] . ".php"); } ?> Endret 28. juli 2008 av dahwan Lenke til kommentar
Harald B Skrevet 28. juli 2008 Del Skrevet 28. juli 2008 <?php // Sjekker om variablen "page" finnes. Hvis den finnes så // inkluderer vi en php fil med verdien til "page" som filnavn // fra mappen "pages" if($_GET['page']) { include("pages/" . $_GET['page'] . ".php"); } ?> Og hva skjer da hvis slemme kåre skriver sårbarside.no/index.php?page=../../etc/passwd%00 Lenke til kommentar
grimjoey Skrevet 28. juli 2008 Del Skrevet 28. juli 2008 <?php // Sjekker om variablen "page" finnes. Hvis den finnes så // inkluderer vi en php fil med verdien til "page" som filnavn // fra mappen "pages" if($_GET['page']) { $files = glob('pages/*'); $filename = $_GET['page'] . '.php'; if (in_array($filename, $files)) include("pages/" . $filename); } ?> Lenke til kommentar
k-r-l Skrevet 28. juli 2008 Forfatter Del Skrevet 28. juli 2008 <?php // Sjekker om variablen "page" finnes. Hvis den finnes så // inkluderer vi en php fil med verdien til "page" som filnavn // fra mappen "pages" if($_GET['page']) { $files = glob('pages/*'); $filename = $_GET['page'] . '.php'; if (in_array($filename, $files)) include("pages/" . $filename); } ?> hva gjorde du nå? fatter ikke dette helt helt ny med php Men hva er det jeg trenger å skrive inn i denne? Lenke til kommentar
grimjoey Skrevet 29. juli 2008 Del Skrevet 29. juli 2008 (endret) <?php // Sjekker om variablen "page" finnes. Hvis den finnes så // inkluderer vi en php fil med verdien til "page" som filnavn // fra mappen "pages" if($_GET['page']) { // $files er et array med filnavn funnet i 'pages/*' $files = glob('pages/*'); // $filename er hentet fra url: // (http://www.example.com/index.php?page=about) // i eksempelets tilfelle: $filename = 'about.php' $filename = $_GET['page'] . '.php'; // her sjekkes det om $filename finnes i $files // dette hindrer noen i å skrive inn ../../ for å // få tilgang til filer utenfor pages/ området if (in_array($filename, $files)) include("pages/" . $filename); } ?> en enkel måte å få litt innblikk i hvordan $_GET fungerer er å lage en side som kun inneholder: <pre> <?php print $_SERVER['QUERY_STRING'] . "\n\n"; print_r($_GET); ?> </pre> så kan du eksprementere med denne siden ved å skrive inn url med ? bak fulgt av en såkalt query string i form av: variabel1=verdi1&variabel2=verdi2&variabelN=verdiN print_r($input) printer en tekst-representasjon av input. praktisk hvis du vil ta en titt på et array eller et objekt. eksempel: <pre> <?php class testClass { public $testVar = 'blabla'; public $testArray = array('bla', 'bla2', 'bla3'); public function printR() { print_r($this); } } $t = new testClass; // disse to linjene gjør det samme print_r($t); $t->printR(); ?> </pre> Endret 29. juli 2008 av grimjoey Lenke til kommentar
dahwan Skrevet 29. juli 2008 Del Skrevet 29. juli 2008 (endret) <?php // Sjekker om variablen "page" finnes. Hvis den finnes så // inkluderer vi en php fil med verdien til "page" som filnavn // fra mappen "pages" if($_GET['page']) { include("pages/" . $_GET['page'] . ".php"); } ?> Og hva skjer da hvis slemme kåre skriver sårbarside.no/index.php?page=../../etc/passwd Hæ? Scriptet legger jo til .php på slutten av filnavnet. Du kan jo fikse det slik at alle sidene i /pages har filformatet .page eller whatever. Dermed vil scriptet legge til .page bak variablen i adresselinja og brukere vil ikke få adgang til .php filer. Endret 29. juli 2008 av dahwan Lenke til kommentar
Harald B Skrevet 29. juli 2008 Del Skrevet 29. juli 2008 Scriptet legger jo til .php på slutten av filnavnet.Du kan jo fikse det slik at alle sidene i /pages har filformatet .page eller whatever. Dermed vil scriptet legge til .page bak variablen i adresselinja og brukere vil ikke få adgang til .php filer. Tror du må studere posten min litt mer nøye. Legg merke til %00. Deretter googler du "zero byte poisoning". Kort fortalt er php selv programert i C. I C fungerer det slik at en streng avsluttes med en null byte. Dette gjør at dersom vi kan injisere en null byte i en streng i php, vil funksjoner som include kaste alt som står etter denne. Det holder altså ikke å legge til .php eller .txt etter filnavnet slik du har gjordt i posten din. Lenke til kommentar
k-r-l Skrevet 30. juli 2008 Forfatter Del Skrevet 30. juli 2008 (endret) Tusen takk for hjelpen skal prøve meg litt på dette nå. Endret 30. juli 2008 av k-r-l Lenke til kommentar
k-r-l Skrevet 3. august 2008 Forfatter Del Skrevet 3. august 2008 Hei, har funnet et script, er ikke sikker, men tror det skal gjøre siden mer sikker.. Men så var det hvordan jeg bruker d, hmm noen som gidder å se på det? $allowed_pages = array('hjem', 'om-meg', 'kontakt', 'tull', 'ball'); //Godkjente sider, for å sikre at man ikke kan inkludere filer som kan skade på noe måte $page = (!empty($_GET['page'])) ? $_GET['page'] : $allowed_pages[0]; // Bruker Get-variabelen "page", hvis den er tom går vi ut i fra at første verdi i $allowed_pages er startsiden if(in_array($page, $allowed_pages)) { include($page . ".php"); // Hvis siden finnes henter vi den } else { include("404.php"); // Hvis ikke henter vi en 404-side } Jeg har fått til alt utenom dette med: "// Bruker Get-variabelen "page", hvis den er tom går vi ut i fra at første verdi i $allowed_pages er startsiden" det fører til at den laster index filen i en loop, : http://otto87.freehostia.com/test/ slik ser det ut nå under $allowed_pages: <?php $allowed_pages = array('index', 'om', 'om2', 'om3', 'ball'); //Godkjente sider, for å sikre at man ikke kan inkludere filer som kan skade på noe måte ?> Noen forslag? På forhånd, tusen takk Lenke til kommentar
Jonas Skrevet 3. august 2008 Del Skrevet 3. august 2008 Index.php er ikke startsiden din. Med scriptet du bruker, er det en side alt vises fra. Gjør som eksempel-koden forslår, og opprett en hjem-side. Lenke til kommentar
k-r-l Skrevet 3. august 2008 Forfatter Del Skrevet 3. august 2008 Index.php er ikke startsiden din. Med scriptet du bruker, er det en side alt vises fra. Gjør som eksempel-koden forslår, og opprett en hjem-side. Takk, der funka det. men lurte på en ting til, hvordan gjør jeg det hvis jeg skal hente en side utenfra (http://otto87.blogg.no/) og inkludere den med dette scriptet, må jeg gjøre noe spesielt eller? Lenke til kommentar
grimjoey Skrevet 3. august 2008 Del Skrevet 3. august 2008 jeg er usikker om include støtter ekstern uri. alternativt kan du gjøre slik: print file_get_contents('http://otto87.blogg.no'); Lenke til kommentar
k-r-l Skrevet 3. august 2008 Forfatter Del Skrevet 3. august 2008 jeg er usikker om include støtter ekstern uri. alternativt kan du gjøre slik: print file_get_contents('http://otto87.blogg.no'); ? sorry men jeg er helt grønn når d kommer til php :S Lenke til kommentar
k-r-l Skrevet 3. august 2008 Forfatter Del Skrevet 3. august 2008 ok, bare glem den siste der, valgte å ikke bruke bloggen. Men har et annet problem, hvis jeg åpner siden og trykker på en link, så blir det åpnet en ny side, og fra den funker alle linkene i et vindu, men ikke i det første: http://otto87.freehostia.com/ php koden jeg bruker er denne: <?php $allowed_pages = array('start', 'om_meg', 'galleri', 'blog', 'sammarbeid', 'kontakt'); //Godkjente sider, for å sikre at man ikke kan inkludere filer som kan skade på noe måte $side = (!empty($_GET['side'])) ? $_GET['side'] : $allowed_pages[0]; // Bruker Get-variabelen "page", hvis den er tom går vi ut i fra at første verdi i $allowed_pages er startsiden if(in_array($side, $allowed_pages)) { include($side . ".php"); // Hvis siden finnes henter vi den } else { include("404.php"); // Hvis ikke henter vi en 404-side } ?> noen som har noen forslag til dette? Lenke til kommentar
Jonas Skrevet 3. august 2008 Del Skrevet 3. august 2008 Fjern target-attributen på linkene dine, så skal du se det funker. Lenke til kommentar
TheClown Skrevet 5. august 2008 Del Skrevet 5. august 2008 Her er et lite script jeg har laget i PHP. Klikky Scriptet består bare av en fil (index.php) og flere template-filer i Smarty. Scriptet bestemmer hva som skal vises ut ifra hva som står i URLen. ?side=hjem viser forsiden ?side=bibliotek viser linkbibliotektet osv. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå