Gå til innhold

Include problem, trenger et alternativt script


Anbefalte innlegg

Jobber med et hjemmesideprosjekt, faktisk min første side i php, med div's og css. Jeg bruker akkurat nå include-scriptet til jorgis (fra den artikkelen han skrev om sikker inkludering, model nr 1). Det gjør at sidene kun kan inkluderes hvis de befinner seg i samme mappe som indexfila.

 

Dette scriptet var egentlig ganske greit, for da slipper jeg å redigere scriptet hver gang jeg legger til en link. På den annen side, skaper dette problemer ved å blokkere nyhetsscriptet mitt, som ligger i en annen mappe på serveren. Nyhetene vises når de blir inkludert direkte, men dersom jeg har "les mer" (link til full story) blir siden blokkert, og man blir flyttet tilbake til hovedsiden.

 

Hvordan kan jeg forandre scriptet til å tillate noen bestemte mapper? Finnes det noen andre alternativer til include script?

Endret av g0mpen
Lenke til kommentar
Videoannonse
Annonse

Du kan fjerne if-setningen som sjekker om du inkluderer filer fra en annen mappe, men det vil føre til at du stiller døren din på vid vegg for at andre kan inkludere slemme filer.

 

Modifisert versjon, basert på "åpen låvedør"-prinsippet: :p

<?php
error_reporting(0);
$filnavn = $_GET['s'];
$filendelse = '.php';
if (!$filnavn) {
$filnavn = 'forside';
}
if (file_exists("$filnavn". "$filendelse")) {
 include $filnavn . $filendelse;
}
else {
 include "404.php";
}
?>

Lenke til kommentar

Det kan være mange... start.no sin :ermm:

 

Edit: Hvordan kan de på noen måte skade siden min ved å inkludere en fil? Den blir jo ikke lagret, bare vist for de som bruker den rette linken... :hmm:

 

Edit2: Hvordan linker man da til en fil i en annen mappe? index.php?side=mappe/fil ???

Endret av g0mpen
Lenke til kommentar
Edit: Hvordan kan de på noen måte skade siden min ved å inkludere en fil? Den blir jo ikke lagret, bare vist for de som bruker den rette linken... :hmm:

Tenk deg et script som lister opp og gir muligheten til å slette filer og mapper. Hvis en bruker får til å inkludere dette scriptet på din side vil han/hun mest sannsynlig være i stand til å bevege seg fritt rundt på ditt område av serveren og slette det han/hun har lyst til.

Lenke til kommentar

jeg bruker et slikt switch system, mest for sikkerheten. Om jeg ikke har teksten i en database og må inkludere andre filer, så er switch sikkert nok. Mest fordi det ikke inkluderer om det $_GET arrayet er satt.

 

Trodde han mente et alternativ ang sikkerhet med includescriptet jeg.

Lenke til kommentar

Tillate sider behøves ikke hardkodes selv om man vil ha de i et array.

Du kan alltids lage en side-konfigurasjons-tabell i database eller bruke en ini eller xml fil til konfig.

Da kan du lage et webpanel på en admin del av siden din hvor du kan se over hvilke filer som er lov og inkludere og fjerne/legge til fra der.

 

Det er godt mulig det er for avansert i forhold til hva du ønsker, bare nevner det liksom :)

Lenke til kommentar

Å kjøre alt av sider, dvs logikk, eller php kode, fra database vil ikke jeg mene er noen god ide.

Alt av innhold kan du fint kjøre fra database derimot, og bruke templates enten lagret i database eller html/xml for utseende. Det vil være veldig fleksibelt, og samtidig mye mere avansert og lage.

 

Men php kode hører hjemme i php filer ikke i databasen.

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...