n0n4m3 Skrevet 25. september 2011 Del Skrevet 25. september 2011 (endret) Hei godtfolk! leser en del på forumet her og fått mye kjekk info og slik (uten bruker), registrerte en bruker nå for å spørre de som er litt smartere en meg i php om følgene: jeg prøver og få til en variabel som har en include i seg, men det funker jo da ikke. kode: <?php $variabel = "include("heihaa.php");"; ##fail echo ("hei folkens"); $variabel ?> dette er jo ikke koden jeg driver med men konkret dette jeg klør meg i huet på driver og snekkrer sammen noe automatisering av noe sidesystem-prosjekt(minimal-flatfil cms om du vill:P) må si jeg ser dette er feil med en gang.. "; ;" + at det ikke virker, har prøvd og skrive syntaxen på en del måter og søkt rundt, men blir ikke klok på akkurat dette lurer på om det er noen annen måte og gjøre det jeg forsøker på? eller om jeg er på bærtur og det finnes en riktig måte og gjøre dette på? funksjon kanskje? Takker for svar Hilsen Fredrik EDIT: [LØSNING] Endret 26. september 2011 av n0n4m3 Lenke til kommentar
MikkelRev Skrevet 26. september 2011 Del Skrevet 26. september 2011 Den koden der ga meg lite mening. Du skriver: include "heihaa.php"; Dersom filnavnet skal variere, kan du skrive: $file="heihaa.php"; include $file; Dersom du vil ha innholdet til filen, kan du skrive: $file_content=$file_get_content("heihaa.php"); Dersom du vil la querystringen bestemme hva som skal include's, kan du skrive: file=$_GET["file"]; include $file; 1 Lenke til kommentar
n0n4m3 Skrevet 26. september 2011 Forfatter Del Skrevet 26. september 2011 Den koden der ga meg lite mening. hehe ja den gjorde det! Awsome svar skal sjekke det ut med en gang jeg kommer hjem så blir det eventuelt [LØST].. thx Lenke til kommentar
GeirGrusom Skrevet 26. september 2011 Del Skrevet 26. september 2011 Dersom du vil la querystringen bestemme hva som skal include's, kan du skrive: file=$_GET["file"]; include $file; Noe du ALDRI må finne på å noensinne bruke. Dette tillater fullstendig kode-injection på siden din, og er mildt sagt dritfarlig å gjøre. 2 Lenke til kommentar
Occi Skrevet 26. september 2011 Del Skrevet 26. september 2011 .. Og kan løses vha. htmlspecialchars og f. eks addslashes. mysql_real_escape_string eller tilsvarende må brukes ved databasebruk. Lenke til kommentar
duckyduck Skrevet 26. september 2011 Del Skrevet 26. september 2011 (endret) Evt. prøve $variabel="include('fil.php')"; og kalle den ved eval($variabel); Tror det blir å funke (eval evaluerer string som PHP) Endret 26. september 2011 av duckyduck 1 Lenke til kommentar
Jonas Skrevet 26. september 2011 Del Skrevet 26. september 2011 Å evaluere brukerinput som kode åpner i hvert fall siden for angrep. Lenke til kommentar
n0n4m3 Skrevet 26. september 2011 Forfatter Del Skrevet 26. september 2011 Mulig jeg driter meg ut her... <?php $mapp = $_POST["mapp"]; //henter ut mappe navn fra post $path = "../pages/$mapp"; // fikser mappe navnet til sti $filavd = "../pages/$mapp/index.php"; //fikser en index fil i mappa på sti //går igjennom mappa og lister ut det som er der i INCLUDE! $dir_handle = @opendir($path) or die("GrrError $path");//feilmelding while ($file = readdir($dir_handle)) { if($file == "." || $file == ".." || $file == "index.php" ) continue; include("../pages/$mapp/$file"); // lister filene i include(får html kildekoden her) ## skriv includen ovenfor til fil (fordi jeg vill ha ut kildekoden til en fil) $fp = fopen ("$filavd", "w+"); //W\a+\r+ if ($fp) { fwrite ($fp, "skrive kildekoden fra gitt resultat WTF..."); fclose ($fp); } else { //feilmelding echo ("GrrrError rettigheter"); }} closedir($dir_handle); ?> står ganske fast på hva jeg skal ha på fwrite ($fp, ""); for å få skrevet resultatet til en egen fil hvis noen ser umidelbar feil plz halp, ellers dropper jeg det her foreløbig og gjør det manuelt (gå inn i kildekoden-> copy paste) Lenke til kommentar
GeirGrusom Skrevet 26. september 2011 Del Skrevet 26. september 2011 Ikke gjør copy-paste, men heller ikke bruke POST eller GET noensted som en kilde i include. Grunnen her er at en kan bruke filbanen som en relativ bane, og avslutte med en \0, så er nettsiden din hijacket. Det er bedre å bruke switch eller lignende fremfor å dytte include parameter gjennom post eller get. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 26. september 2011 Del Skrevet 26. september 2011 (endret) .. Og kan løses vha. htmlspecialchars og f. eks addslashes. mysql_real_escape_string eller tilsvarende må brukes ved databasebruk. Jeg anbefaler at man oppgraderer til siste stabile versjon av PHP og bruker prepared statements. Da unngår man en del trøbbel: http://php.net/manual/en/pdo.prepared-statements.php Se også: http://net.tutsplus.com/tutorials/php/the-problem-with-phps-prepared-statements/ http://www.ultramegatech.com/blog/2009/07/using-mysql-prepared-statements-in-php/ Endret 26. september 2011 av Slettet+9871234 Lenke til kommentar
n0n4m3 Skrevet 26. september 2011 Forfatter Del Skrevet 26. september 2011 ja forsker litt på allt som blir nevnt her, får ikke til det jeg prøver å få til akkurat :\ det scriptet der skal være helt offline\lokalt i et lite system som mekker sammen en side av template og div's og diverse som jeg laster opp med ftp:P er ikke så avansert enda så risikerer ikke noe(hadde en gjeste bok engang som ble spamma fra H) ^^ har ikke noe mere seriøst en bare test pages egentlig.. noen gode forslag konkret om hvordan jeg kan løse dette jeg prøver på så hadde jeg blitt happy :] når jeg kjører "submit" på "post action="merger.php"" får jeg opp en kildekode jeg har lyst på, noen andre måter og få ut kildekoden en og høyreklikke og kopiere kildekode? må jo gå ann og skrive den til en fil elns :s Lenke til kommentar
Occi Skrevet 26. september 2011 Del Skrevet 26. september 2011 Tenker du på noe slikt? 1 Lenke til kommentar
n0n4m3 Skrevet 26. september 2011 Forfatter Del Skrevet 26. september 2011 ahh takk takk TAKK! Manualen ftw includerte denne i bånn av output fila: merg.php <?php header("Content-Type: text/plain"); print_r(parse_php_file("../php/merg.php")); ?> og det ga resultatet jeg var ute etter: kildekode som text Takker for alle svar - Fredrik 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å