Guide

Sikker bruk av include-script

Hva er et include-script?

Et include-script er en liten kodesnutt i PHP som gir en webside noen av de fordeler frames gav uten de samme ulempene. Man kan ha designet sitt (HTML og CSS) i en fil, og bruke include-scriptet til kun å få tak i innholdet, som befinner seg i separate filer. Dermed oppnås en nesten total atskillelse av design og innhold. Slik unngår man problemer hvis man skal redesigne en side med mange undersider, og man kan også laste opp nytt innhold uten å måtte ta ned forsiden.

Include-script finnes i to varianter; dynamiske og statiske. Førstnevnte er mest aktuelt for de fleste, siden det ikke krever endring av førstesiden og include-scriptets kode for å laste opp en ny side. Dynamiske include-script er også farligst, siden det lett kan lures til å hente en hvilken som helst annen fil, og dermed kan man risikere å få uønsket besøk på serveren.

Statiske include-script er mer eller mindre skuddsikre, men mangler mye av den funksjonaliteten dynamiske include-script gir. Et statisk include-script henter bare inn forhåndsdefinerte filer uten mulighet for brukerpåvirkning av hva som hentes. Derfor føler vi det ikke er noe behov for å ta det opp her.

Hvordan

Et include-script benytter seg av - og har blitt navngitt etter - en PHP-funksjon som benyttes til å inkludere filer i andre filer. Den funksjonen benyttes ofte i sammenheng med den superglobale variabelen $_GET[]. En superglobal variabel er en variabel som er tilgjengelig overalt i koden, og også overalt på webtjeneren. Når man holder på med superglobale variabler, bør man være meget forsiktig, men det er ikke alle som helt tenker over farene.

$_GET[] kan brukes bl.a. til å hente data fra adresselinjen. Du har sikkert sett sider som har brukt dette før, med adresser som http://www.programmer.no/art.php?artikkelid=8764, som faktisk er adressen til nettopp denne artikkelen. Som du kan se er programmer.no en av sidene som benytter seg av dette. Et enkelt include-script kan se slik ut:

include "$_GET['s'].php">;

Funksjonen include henter altså det som kommer etter bokstaven "s" i URL-en, og legger til en filendelse. Deretter inkluderes filen i scriptet.

Include-scriptet vil da inkludere hvilken som helst fil brukeren spesifiserer i URL-en. Hvis URL-en er index.php?s=articles, inkluderes filen articles.php. Dette kan misbrukes, ved bl.a. å skrive "../", som indikerer at filen befinner seg en mappe lengre oppe i hierarkiet. Hvis URL-en er index.php?s=../slemfil.php, inkluderes filen slemfil.php, som ligger en mappe lenger oppe. Dette kan i verste fall brukes til å inkludere en fil fra andre brukere på serveren, noe som kan gjøre at en ondsinnet inntrenger kan få uautorisert tilgang til serveren.

Kommentarer (2)

Norges beste mobilabonnement

Mars 2017

Kåret av Tek-redaksjonen

Jeg bruker lite data:

Komplett MiniFlex 1GB


Jeg bruker middels mye data:

Telio FriBruk 5GB+EU


Jeg bruker mye data:

Komplett MaxiFlex 10GB


Jeg er superbruker:

Komplett MegaFlex 30GB


Finn billigste abonnement i vår mobilkalkulator

Forsiden akkurat nå

Til toppen