Gen. partnerAlgotech

Конструкція включає в себе

Вставляє на сторінку інший текстовий файл або скрипт. Підтримує звичайні/текстові файли.

|
11 вересня 2019 р.
Підтримка PHP 4, PHP 5, PHP 7
Короткий опис Додає до сценарію інший текстовий файл або скрипт.
Вимоги Інший текстовий файл або скрипт, який необхідно вставити.
Примітка Неможливо завантажити зовнішні файли.

Oпис

Вставляє на сторінку інший текстовий файл або скрипт. Підтримує звичайні/текстові файли.

Вбудовані файли поводяться так, ніби вони знаходяться безпосередньо на сторінці.

Вбудовані скрипти виконуються автоматично.

Вбудований скрипт передає значення змінних.

Неможливо завантажити з зовнішнього накопичувача. Може читати тільки звичайний неформатований текст і PHP-файли.

Допустимі формати шляхів:

  • script.php - файл в тому ж каталозі, буде виконуватися
  • script.html - файл в тому ж каталозі, виконуватися не буде
  • ./file.php - файл в тому ж каталозі, буде виконуватися
  • ../page.html.
  • folder\file\file.php - запис в Windows
  • address/DalsiAddress/file.php - запис на Unix системах

Косі риски типу **** і **/** можуть взаємоперетворюватися, тому вам не доведеться мати з цим справу.

Нелегальний вхід в систему: https://domena.pripona/slozka/soubor.php.

Aналогічні функції

Приклад

include 'file.php';

Він вставляє на сторінку скрипт file.php і запускає його на виконання.

`vars.php

$color = 'зелений';
$fruit = 'яблуко';

test.php

$color = '';
$fruit = '';
echo 'A' . $color . '' . $fruit; // A
include 'vars.php';
echo 'A' . $color . '' . $fruit; // Зелене яблуко

УВAГA: Наведені нижче позначення неможливі, передавайте вміст змінних шляхом їх визначення!

include 'file.php?parameter=neco';

Значення, що повертаються

Ні, просто ставить файл.

ПРИМІТКA: Дозволяє порівнювати вміст файлів, але це є ризиком для безпеки. Порядок дужок має значення! Приклад:

if ((include 'file.php') == 'ГAРAЗД.') {
echo 'Значення "OК"';
}

Це потенційна загроза безпеці!

Може бути вирішена за допомогою 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(), а краще дозволити тільки значення білого списку.

Načítání komentářů...

Zůstaňte v obraze

Přihlaste se k odběru našeho newsletteru a získejte nejnovější informace o kybernetické bezpečnosti přímo do vaší e-mailové schránky.

Vaše údaje jsou v bezpečí. Newsletter můžete kdykoliv odhlásit.