| Підтримка | PHP 4, PHP 5, PHP 7
|---------------|--------- | Короткий опис | Додає до сценарію інший текстовий файл або скрипт. | Вимоги | Інший текстовий файл або скрипт, який необхідно вставити. | Примітка | Неможливо завантажити зовнішні файли.
Вставляє на сторінку інший текстовий файл або скрипт. Підтримує звичайні/текстові файли.
Вбудовані файли поводяться так, ніби вони знаходяться безпосередньо на сторінці.
Вбудовані скрипти виконуються автоматично.
Вбудований скрипт передає значення змінних.
Неможливо завантажити з зовнішнього накопичувача. Може читати тільки звичайний неформатований текст і PHP-файли.
Допустимі формати шляхів:
script.html
- файл в тому ж каталозі, виконуватися не буде./file.php
- файл в тому ж каталозі, буде виконуватися../page.html
.folder\file\file.php
- запис в Windowsaddress/DalsiAddress/file.php
- запис на Unix системахКосі риски типу ****
і **/**
можуть взаємоперетворюватися, тому вам не доведеться мати з цим справу.
Нелегальний вхід в систему: https://domena.pripona/slozka/soubor.php
.
include 'file.php';
Він вставляє на сторінку скрипт file.php
і запускає його на виконання.
`vars.php
$color = 'зелений';$fruit = 'яблуко';
test.php
$color = '';$fruit = '';echo 'A' . $color . '' . $fruit; // Ainclude 'vars.php';echo 'A' . $color . '' . $fruit; // Зелене яблуко
УВАГА: Наведені нижче позначення неможливі, передавайте вміст змінних шляхом їх визначення!
include 'file.php?parameter=neco';
Ні, просто ставить файл.
ПРИМІТКА: Дозволяє порівнювати вміст файлів, але це є ризиком для безпеки. Порядок дужок має значення! Приклад:
if ((include 'file.php') == 'ГАРАЗД.') {echo 'Значення "ОК"';}
Це потенційна загроза безпеці!
Може бути вирішена за допомогою file_get_contents(), readfile() або fopen(). Fopen() слід використовувати тільки для файлів .txt та .html.
Безпечне читання файлу можна вирішити, визначивши спеціальну функцію.
Приклад:
$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;}
**Якуб Врана написав мені електронною поштою:
include 'статті/' . $_GET['Стаття'] . '.html';
Це вкрай небезпечно.
Зловмисник може передати посилання на інший каталог, використовуючи в якості назви статті ../
або щось подібне, а іноді вдається позбутися закінчення, передавши в кінці нульовий байт.
Ви повинні як мінімум використовувати функцію basename()
, а краще дозволити тільки значення білого списку.
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: ... | uk