Php: безпека. Підключення файлів.

Відео: PHP для початківців | # 8 Підключення PHP-файлів (require, include)

PHP: безпека. Підключення файлів.

Всім привіт! У цій статті ми розберемося, як правильно підключати файли в PHP.

Якщо ви розробляєте свій движок, то ви можете зробити щось на зразок цього:

Відео: 07 Підключення PHP файлів до інших файлів

lt ;?php
if(!isset($ _GET[`Show`])){
die() -
}

$ show
= $ _GET[`Show`] -
$ content
= file_get_contents("Content / {$ show} .php") -
?gt;


lang="En"gt;

charset="Utf-8"gt;
File Includes


lt ;?php echo $ content-?gt;

Тут ми просто отримуємо дані з URL і підключаємо потрібний нам файл з папки content, додаючи до його назви розширення .php. Здавалося б, що тут може бути небезпечного? Щоб розібратися з цим, давайте створимо папку app в корені нашого сайту і додамо в неї файл db.php, в якому пропишемо наступне:

Відео: Підключення зовнішніх файлів (практика) [PHP - Урок 11]

$ db =new PDO(`Mysql-host = 127.0.0.1-dbname = localhost`,`Root`,`12345`) -


Тепер зайдіть на сторінку, введіть в URL наступне:

Відео: Урок 24: Підключення файлів

domain.com/site/?show= .. /app/db // замість domain.com/site/ введіть url свого сайту


Перед вами виявиться порожня сторінка, але, якщо ви подивитеся в її вихідний код, то побачите там наше підключення до бази даних. Працює це дуже просто: у нас є файл index.php, в якому ми пишемо код, тобто папки app і content. З файлу index.php за допомогою функції file_get_contents ми запитуємо введену в URL сторінку з папки content, але, якщо ми введемо ../, це буде означати, що потрібно піднятися на рівень вище, ми вийдемо в корінь, звідти перейдемо в папку app, де і знайдемо потрібний нам файл.

Щоб такої проблеми не було, ніколи не створюйте сайт таким чином. Якщо ви ще новачок і не знаєте, як правильно робити движки для сайтів, то раджу придбати курс Створення движка на PHP і MySQL 2.0. Якщо ж вам дуже потрібно робити саме так, то обов`язково використовуйте перевірки. Наприклад, убезпечити наш сайт можна ось таким чином:

// ...
$ show
= $ _GET[`Show`] -
$ allowed
=[`Main`,`Card`] -
$ content
= in_array($ show, $ allowed)? file_get_contents("Content / {$ show} .php"):``-
// ...

Тобто ми створюємо масив, де вказуємо назви сторінок, до яких можна отримати доступ, а далі робимо перевірку, чи є така сторінка в списку. Якщо є, то переходимо на неї, інакше ж просто виводимо порожній рядок.

Отже, на цьому все. Дякую за увагу!

Поділися в соціальних мережах:

Схожі
Створення движка на mvc. Продовжуємо роботу над чатом.Створення движка на mvc. Продовжуємо роботу над чатом.
Створення движка на mvc. Допрацьовуємо роутер.Створення движка на mvc. Допрацьовуємо роутер.
Pdo. Частина 1.Pdo. Частина 1.
Скорочення url-адреси на phpСкорочення url-адреси на php
Як зробити динамічне додавання коментарів, використовуючи ajax.Як зробити динамічне додавання коментарів, використовуючи ajax.
Як зробити багатомовний сайтЯк зробити багатомовний сайт
Створення движка на mvc. Починаємо роботу з базою даних.Створення движка на mvc. Починаємо роботу з базою даних.
Як створити об`єкт по імені класу в phpЯк створити об`єкт по імені класу в php
Як приховати url викачуваного файлу на phpЯк приховати url викачуваного файлу на php
Вивчаємо coffeescript. Функції.Вивчаємо coffeescript. Функції.
» » Php: безпека. Підключення файлів.