| Stöd | PHP 4, PHP 5, PHP 7
|---------------|--------- | Kort beskrivning | Lägger till en annan textfil eller ett annat skript till skriptet. | Krav | Annan textfil eller manus som ska infogas. | Obs | Kan inte ladda externa filer.
Infogar en annan textfil eller ett annat skript på sidan. Stöder vanliga textfiler.
Inbäddade filer beter sig som om de fanns direkt på sidan.
Inbäddade skript utförs automatiskt.
Det inbäddade skriptet överför värdet på variablerna.
Kan inte laddas från externt lagringsutrymme. Kan endast läsa vanlig oformaterad text och PHP-filer.
Tillåtna format för sökvägar:
script.php
- fil i samma katalog, kommer att körasscript.html
- fil i samma katalog, kommer inte att exekveras./file.php
- fil i samma katalog, kommer att köras../page.html
folder\file\file.php
- skriva i Windowsaddress/DalsiAddress/file.php
- skrivning på Unix-systemSnedstreck av typen ****
och **/**
kan interkonverteras, så du behöver inte ta hänsyn till det.
Felaktig sökväg: https://domena.pripona/slozka/soubor.php
.
include 'file.php';
Den infogar skriptet file.php
i sidan och kör det.
vars.php
$color = 'grönt';$fruit = 'äpple';
test.php
$color = '';$fruit = '';echo 'A' . $color . '' . $fruit; // Ainclude 'vars.php';echo 'A' . $color . '' . $fruit; // Ett grönt äpple
VARNING: Följande notation är inte möjlig, överför innehållet i variabler genom att definiera dem!
include 'file.php?parameter=neco';
Ingen, lägger bara in filen.
NOTAT: Gör det möjligt att jämföra filinnehåll, men det är en säkerhetsrisk. Ordningen på parenteserna spelar roll! Exempel:
if ((include 'file.php') == 'OK') {echo 'Värdet är "OK".';}
Detta är en potentiell säkerhetsrisk!
Kan lösas med file_get_contents(), readfile() eller fopen(). Fopen() bör endast användas för .txt- och .html-filer.
Säkrare läsning av filen kan lösas genom att definiera en egen funktion.
Exempel:
$string = get_include_contents('somefile.php');function get_include_contents(string $filename): ?string{if (is_file($filename)) {ob_start();include (string) $filename;return ob_get_clean();}return null;}
Jakub Vrána mejlade mig:
include 'artiklar/' . $_GET['Artikel'] . '.html';
Detta är extremt farligt.
En angripare kan skicka en länk till en annan katalog med ../
eller något liknande som artikelnamn, och ibland är det möjligt att bli av med ändelsen genom att skicka en null-byte i slutet.
Du bör åtminstone använda funktionen basename()
, men det är bättre att endast tillåta värden från whitelistan.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | sv