Ernie Skrevet 26. oktober 2007 Del Skrevet 26. oktober 2007 Litt småtrøtt nå, så jeg tar forbehold mot feil, men her er en oppdatert versjon: <?php if(isset($_GET['id'])) { $id = $_GET['id']; if (file_exists('filer/'.$id.'.php') && preg_match("/^[a-z]*$/i", $id) == 1) include_once 'filer/'.$id.'.php'; else echo 'Siden finnes ikke, prøv igjen'; } else include_once 'filer/index.php'; ?> Lenke til kommentar
loathsome Skrevet 27. oktober 2007 Del Skrevet 27. oktober 2007 (endret) Selvsagt Ernie, jeg er 100% klar over det, men nå ba ikke vedkommende om et fullverdig inkluderingsscript heller (eller gjorde h*n? ) For øvrig er det unødvendig å sjekke om preg_match == 1/true Du kan også legge til 0-9 samt underscore og bindestre i uttrykket. Endret 27. oktober 2007 av loathsome Lenke til kommentar
øl_i_tastaturet Skrevet 27. oktober 2007 Forfatter Del Skrevet 27. oktober 2007 Det funker altså ikke. Og jeg skjønner ikke hva som er galt. Har så og si prøvd alt nå. Lenke til kommentar
Ernie Skrevet 27. oktober 2007 Del Skrevet 27. oktober 2007 Selvsagt Ernie, jeg er 100% klar over det, men nå ba ikke vedkommende om et fullverdig inkluderingsscript heller (eller gjorde h*n? ) For øvrig er det unødvendig å sjekke om preg_match == 1/true Du kan også legge til 0-9 samt underscore og bindestre i uttrykket. Altså visse ting bør man sikre seg mot før man slenger det ut public. I dette tilfellet kan man f.eks lese /etc/passwd, og det er særdeles kritisk. Hvorfor det er unødvendig å sjekke om preg_match er 1 er jo sant, men å utelate det er latskap og gir dårligere lesbarhet. Jeg liker alltid å ende opp med boolske uttrykk i en if og if ($var) kan jo være hva om helst. Å legge til 0-9 + andre tegn er jo ikke noe vanskelig. Bare å legge de til sammen med a-z. Det funker altså ikke. Og jeg skjønner ikke hva som er galt. Har så og si prøvd alt nå. Det fungerer hos meg, så da lurer jeg litt på hva du faktisk gjør og har gjort. Ikke minst, kommer det opp en feilmelding? Lenke til kommentar
øl_i_tastaturet Skrevet 27. oktober 2007 Forfatter Del Skrevet 27. oktober 2007 (endret) Index-siden får bare en ekstra header(?!), mens about.php og contact.php finnes tydeligvis ikke. I "innholds-sidene" har jeg tatt med alt som står innenfor <div id="innhold></div>. Da også inkludert div id'en. link Endret 27. oktober 2007 av bjorshol Lenke til kommentar
loathsome Skrevet 27. oktober 2007 Del Skrevet 27. oktober 2007 Selvsagt Ernie, jeg er 100% klar over det, men nå ba ikke vedkommende om et fullverdig inkluderingsscript heller (eller gjorde h*n? ) For øvrig er det unødvendig å sjekke om preg_match == 1/true Du kan også legge til 0-9 samt underscore og bindestre i uttrykket. Altså visse ting bør man sikre seg mot før man slenger det ut public. I dette tilfellet kan man f.eks lese /etc/passwd, og det er særdeles kritisk. Hvorfor det er unødvendig å sjekke om preg_match er 1 er jo sant, men å utelate det er latskap og gir dårligere lesbarhet. Jeg liker alltid å ende opp med boolske uttrykk i en if og if ($var) kan jo være hva om helst. Å legge til 0-9 + andre tegn er jo ikke noe vanskelig. Bare å legge de til sammen med a-z. Det er ikke latskap, og gir ikke dårligere lesbarhet i det hele tatt. I mine øyne gir det bare ekstra, unødvendig kode å holde styr på Lenke til kommentar
Rabbid Skrevet 27. oktober 2007 Del Skrevet 27. oktober 2007 (endret) *snip* Prøvde det på lokalserveren min, kom bare frem "File doesn't exists", ikke noe kode. Endret 27. oktober 2007 av IQ Lenke til kommentar
Rabbid Skrevet 27. oktober 2007 Del Skrevet 27. oktober 2007 (endret) Ja? ... Jeg misforstod kanskje posten hans litt? (er trøtt). Tenkte ut ifra posten at koden hadde et sikkerhetshull, men det var visst motsatt Endret 27. oktober 2007 av IQ Lenke til kommentar
øl_i_tastaturet Skrevet 27. oktober 2007 Forfatter Del Skrevet 27. oktober 2007 *snip* Prøvde det på lokalserveren min, kom bare frem "File doesn't exists", ikke noe kode. Det er jo det jeg får også? Lenke til kommentar
loathsome Skrevet 27. oktober 2007 Del Skrevet 27. oktober 2007 Se hva du har gjort nå, Ernie - forvirret de stakkars små. Lenke til kommentar
øl_i_tastaturet Skrevet 27. oktober 2007 Forfatter Del Skrevet 27. oktober 2007 Se hva du har gjort nå, Ernie - forvirret de stakkars små. Lenke til kommentar
Ernie Skrevet 27. oktober 2007 Del Skrevet 27. oktober 2007 Se hva du har gjort nå, Ernie - forvirret de stakkars små. Ja, jeg er visst veldig flink til det Vel, vel, får prøve å rydde opp litt da *snip* Prøvde det på lokalserveren min, kom bare frem "File doesn't exists", ikke noe kode. Forutsatt at den koden jeg la inn (antar du snakker om "proof of consept" koden) ligger i en fil sammen med en fil kalt file (uten .php e.l.) skal det gi "File exits", noe som vil være "feil" siden man "logisk sett" forventer at den leter etter file.php. Noe annet resultat vil være høyst interessant. Index-siden får bare en ekstra header(?!), mens about.php og contact.php finnes tydeligvis ikke. I "innholds-sidene" har jeg tatt med alt som står innenfor <div id="innhold></div>. Da også inkludert div id'en. link Det virker som du med eller uten vilje henter inn index.php og andre filere fra samme mappe som du er i. Selvsagt Ernie, jeg er 100% klar over det, men nå ba ikke vedkommende om et fullverdig inkluderingsscript heller (eller gjorde h*n? ) For øvrig er det unødvendig å sjekke om preg_match == 1/true Du kan også legge til 0-9 samt underscore og bindestre i uttrykket. Altså visse ting bør man sikre seg mot før man slenger det ut public. I dette tilfellet kan man f.eks lese /etc/passwd, og det er særdeles kritisk. Hvorfor det er unødvendig å sjekke om preg_match er 1 er jo sant, men å utelate det er latskap og gir dårligere lesbarhet. Jeg liker alltid å ende opp med boolske uttrykk i en if og if ($var) kan jo være hva om helst. Å legge til 0-9 + andre tegn er jo ikke noe vanskelig. Bare å legge de til sammen med a-z. Det er ikke latskap, og gir ikke dårligere lesbarhet i det hele tatt. I mine øyne gir det bare ekstra, unødvendig kode å holde styr på Jo, det er litt latskap. Å gjøre det samme i f.eks Java går heller dårlig. Selv ikke if (int) går. Nå har jeg riktignok vært veldig vant til å jobbe med typesterke språk, så sikkert derfor jeg ser sånn på det. Lenke til kommentar
ZoRaC Skrevet 28. oktober 2007 Del Skrevet 28. oktober 2007 Hvorfor ikke bruke basename($_GET['id']); i stedet for preg? 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å