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