Gå til innhold

Artikkel: Sikkerhet Del 1 - Feil bruk av include


Anbefalte innlegg

Videoannonse
Annonse
  • 3 uker senere...
  • 2 uker senere...

At hvis du har adressa til den .inc-fila, så kan du få den opp i klartekst hvis du skriver den inn i browseren din.. Noe som er litt kjedelig hvis den inneholder passord og diverse ting du ikke vil at hvemsomhelst skal se..

 

Men hvis du derimot har tingene du vil inkludere i en php-fil, så vil innholdet være litt sikrere, etter at serveren har lekt seg litt med den før den viser den til deg..

 

Noe i den duren?

Lenke til kommentar

Jepp. Stemmer.

 

Så lenge du ikke har definert at webserveren skal parse eller hindre tilgang til f.eks .inc filer vil du få disse i klartekst som sagt over.

 

Tanken er jo at .inc filene skal ligge utenfor det tilgjengelige webtreet.

Evt kan man jo rename dem til .php, men det beste er å legge alle filer med "sensitive" data (les: configfiler, filer som inneholder passord, osv) utilgjengelig for andre. F.eks en katalog under webroot.

Lenke til kommentar
At hvis du har adressa til den .inc-fila, så kan du få den opp i klartekst hvis du skriver den inn i browseren din.. Noe som er litt kjedelig hvis den inneholder passord og diverse ting du ikke vil at hvemsomhelst skal se..

 

Men hvis du derimot har tingene du vil inkludere i en php-fil, så vil innholdet være litt sikrere, etter at serveren har lekt seg litt med den før den viser den til deg..

 

Noe i den duren?

 

Så lenge .inc-filene bare inneholder html og php-kode (ingen passord eller slikt) er det jo ikke noe problem, eller? Tenke litt på det der med passord ja, til f.eks. MySQL... Det har jeg lagt i en egen .inc-fil som inkluderes på hver side om henter data fra databasen. Da ligger den jo helt åpen da ja. Men, php-filen der denne inkluderes parses jo av webserveren, så ingen kan finne ut hva denne .inc-filen heter og hvor den ligger, eller?

 

Takk for svar!

Lenke til kommentar
Hvis den ligger i webtreet ditt. Det vil si, slik at du kan skrive inn:

http://minserver/eks_katalog/fila.inc så er du i faresonen.

Flytt da fila en katalog under webroot. Evt rename den til .php.

Da kan ingen se den. Det spiller ingen rolle om et php script parser .inc fila så lenge den er tilgjengelig på web. Da kan hvem som helst se den.

 

Hvis du har en php fil liggende fritt tilgjengelig og php-parseren feiler vil den jo sende alt i ren tekst til browseren. Ikke bra. Så det beste er nok å flytte til webroot ja. Får sjekke med de jeg har site'en liggende hos. Fixer det selv hjemme på min test-server.

 

Takk

Lenke til kommentar
  • 1 måned senere...
  • 1 måned senere...

I denne code biten fra artikkelen er det noen feil....

 

<?php 

 switch ($side) { 



   case "ommeg": 

     $inc_side = "ommeg.html"; 

   break; 



   case "php": 

     $inc_side = "ommeg.html" //  <-- her mangler du;  

   break;



   default: 

    $inc_side = "index.html"  //  <-- her mangler du;  

 } 

 //Hvis $side ikke inneholder ommeg eller 

 //php vil index.html automatisk bli includet. 



 include($inc_side); 



?> 

 

ikke store feil men nok til at det ikke vil fungere.

 

Bra artikkel ellers, veldig nyttig... 8)

Lenke til kommentar

det er noen her som nevnte muligheter for å legge .inc-filer utenfor webområdet. hvordan blir da de linkene til disse stedene? hva med å putte krøllalfa (@) i begynnelsen av linjen som henter include. på den måten vil en iallefall ikke få feilmelding hvis det har hendt noe galt med den filen som skal inkluderes.....

 

deler av treet ser slik ut:

/web/ (her ligger webområdet)

/users/ (Området for brukere)

Lenke til kommentar
det er noen her som nevnte muligheter for å legge .inc-filer utenfor webområdet. hvordan blir da de linkene til disse stedene?

 

Man kan jo ikke linke til filer utenfor webområdet. Poenget med å legge filer utenom er jo å bruke PHP til å hente dem inn. Linkene blir jo da alt ettersom hvordan du bygger opp scripet ditt.

 

hva med å putte krøllalfa (@) i begynnelsen av linjen  som henter include. på den måten vil en iallefall ikke få feilmelding hvis det har hendt noe galt med den filen som skal inkluderes.....

 

Ja, eller skru av error_reporting til skjerm, og heller kjøre til fil. Noe jeg anbefaler uansett så lenge du ikke utvikler/debugger på egen maskin.

Uansett vil det være et sikkerhetshull i koden din selv om det da vil være mindre innlysende for potensielle "gangstere". For meg er ikke det godt nok.

Lenke til kommentar
virker kanskje litt newbie her nå, men hva blir linken hvis man bruker switch scriptet... side.php?id=side2 eller side.php?inc_side=side2??

 

Takk

 

Linken vil bli side.php?side=ommeg f.eks...

 

Bruk dette scriptet:

<?php 

 switch ($side) { 



   case "ommeg": 

     include("ommeg.html"); 

   break; 



   case "php": 

     include("ommeg.html");

   break; 



   default: 

    include("index.html");

 } 

 //Hvis $side ikke inneholder ommeg eller 

 //php vil index.html automatisk bli includet. 



?> 

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...