Php: безпека. Підключення файлів.
Відео: PHP для початківців | # 8 Підключення PHP-файлів (require, include)
Всім привіт! У цій статті ми розберемося, як правильно підключати файли в 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"):``-
// ...
Тобто ми створюємо масив, де вказуємо назви сторінок, до яких можна отримати доступ, а далі робимо перевірку, чи є така сторінка в списку. Якщо є, то переходимо на неї, інакше ж просто виводимо порожній рядок.
Отже, на цьому все. Дякую за увагу!
- Як зробити авторизацію користувачів через facebook.
- Як створити об`єкт по імені класу в php
- Як зробити динамічне додавання коментарів, використовуючи ajax.
- Як приховати url викачуваного файлу на php
- Як зробити багатомовний сайт
- Лічильник звернень до файлів
- Pdo. Частина 1.
- Скорочення url-адреси на php
- Вивчаємо coffeescript. Функції.
- Динамічне завантаження файлів на jquery
- Gulp. Структура проекту і робота завдань.
- Висновок mp3-файлів на сайті через php
- Створення движка на mvc. Продовжуємо роботу над чатом.
- Створення движка на mvc. Пишемо роутер.
- Створюємо сокращатель url. Частина 3.
- Автоматичне резервне копіювання на php
- Навігація по сторінках на php
- Підключення в php сторонніх файлів
- Створення движка на mvc. Створюємо авторизацію.
- Читання ini-файлу в php
- Створення движка на mvc. Починаємо роботу з базою даних.