Jeg vil gerne finde en brugbar måde at inludere mine underfiler til selve forsiden. Altså den knap så spændende index.php?show=something
Til den opgave valgte jeg først $_GET metoden, men uden held. Nu prøver jeg den gode gamle metode, I må lige se om I kan hjælpe mig.
if (!$show){ $show = "forside"; // brugeren får.. if (!file_exists){ $show = "404"; } } // hvis nu show=something ikke findes, skal den viderestille til min 404.
$showsite = "php/" . $show . ".php"; // den her som output.
Mit problem er, at når brugeren f.eks skriver som beskrevet før, kommer der fejl og min placering af web root kommer til synlighed, hvilket ikke er så fedt.
Jeg river snart hovedet af mig selv, så håber nogen derude har et lækkert svar. Hav en god dag.
Jeg ved ikke hvordan jeres point huttelihej virker, kan forstå på dig - at jeg skylder dig lidt point. Du får dem herfra ihvertifald, jeg ved bare ikke hvordan.
- og kan man gætte sig frem til, hvor 'spændende' filer ligger (og det er meget lettere, end man tror), kan hvad somhelst inkluderes med den viste metode.
Det kræver _væsentligt_ bedre tjek på, hvad brugeren vil inkludere - og om det kan tillades ... ikke mindst, hvis man har ligeså 'afslappede' upload-scripts! ;o)
Hvordan det bør gøres, kan kun afgøres med bedre indsigt i den aktuelle applikation - men det er 100% sikkert, der bør vælges en mere sikker tilgang =)
leif >> med al respekt ... det finder du garanteret ikke mange, der er enig i ... tværtimod! Det er rent selvmord! Aldrig, aldrig, aldrig bruge utjekkede bruger-data til noget - og slet ikke includes =)
file_exists giver absolut ingen sikkerhed i dette tilfælde. Den tjekker blot, at filen eksisterer. Ethvert PHP-dokument på din server kan inkluderes udfra en brugers ønsker ... det er da en _gigantisk_ sikkerhedsbrist! De fås ganske enkelt ikke væsentligt større! At du ikke har haft problemer, skal du prise dig mere end lykkelig for. Det er et rent svineheld!
Undskyld de mange udråbstegn, men jeg er faktisk lidt rystet. Emnet har været oppe i dette forum et utal af gange og hvergang har de mere 'tunge' drenge advaret på det kraftigste mod lige netop dén fremgangsmåde. Det undrer mig, det helt er gået din næse forbi =)
;) Giv os lige et link til din side, leif. Og giv os også lige lov til at slette alle dine filer ... haha. Nej, det er et sikkerhedshul af dimensioner. Du skulle smides ud af eksperten.dk for at foreslå det.
Nej, jeg har andet at give mig til, og i dit konkrete tilfælde er 'php/' foran med til at fjerne den første og oplagte mulighed. Problemet er at du ikke gør tydeligt opmærksom på hvor farerne ligger, og hvad man bør gøre i stedet for. Det er jo nemt nok - kig dig omkring på eksperten.dk.
En anden løsning (og bedre?) løsning kunne være den som bruges på, hvor man tjecker på at der kun kan inkluderes noget som man i forvejen har skrevet ind i sit array: www.ljnet.dk/exp/787593/index3.php
Erik >> "i dit konkrete tilfælde er 'php/' foran med til at fjerne den første og oplagte mulighed" >> jeg kan vel bare påbegynde min query-streng med et passende antal '../' og derved arbejde mig ud i roden. Herfra kan jeg så adressere mig ind i enhver krog af sitet ;o)
- faktisk vil selv filer udenfor normalt webspace være i farezonen, hvis filer inkluderes ukritisk ... og der regnes de jo normalt for sikre (med alle forbehold for, at _intet_ er 100% sikkert) ;o)
Ja, selvfølgelig. Men der er også andre boller på suppen, end lige den mulighed. Jeg vil ikke vejlede direkte til hacking, men havde der ikke stået noget foran, ville der være "den første og oplagte mulighed" der skulle prøves ... ;)
Skal du ikke bruge tiden til at lægge noget kode op, Ole....??
Som jeg allerede har prøvet at forklare dig i et andet indlæg, så er jeg ikke en gammel mand med boller på suppen - men derimod en sprød, energisk herre med 'ny suppe i bollerne'. Jeg har lagt kode op ... endda helt uden oplægningsstøtte ;o)
Synes godt om
Ny brugerNybegynder
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.