PHP: глобальна змінна функції

Питання безпеки і збереження даних

Будь-яка глобальна змінна – потенційна загроза. Вкрасти змінну PHP – складно, якщо неможливо. Подивитися змінну JavaScript можна майже завжди. Якщо в браузері або на сервері всі кодується, для зловмисника створюється перешкода, яка чинить негативний вплив і на розробника.

Текст скрипта, де б він ні знаходився, для розробника – зайві труднощі. Все зберігати в текстових файлах або базі даних теж не аргумент.

Хороший вихід пропонує використання об’єктно-орієнтованого програмування, коли створюється така система об’єктів, яка сама визначає необхідні в даний момент часу змінні.

Така система об’єктів існує в браузері поряд з DOM сторінки в поточному стані і змінює свій стан відповідно до зміни DOM. Відстежити динаміку складніше, ніж статику, а реалізувавши трансформацію системи об’єктів JavaScript в адекватний варіант на PHP, тобто на сервері, можна забезпечити як збереження даних, так і вирішити питання безпеки.

Місце PHP і його змінних

Формувати сторінку – головне завдання PHP. Використання систем управління сайтами (CMS) обмежує програміста і нав’язує йому певну концепцію управління глобальними змінними. Будь-яка CMS – це маса її власних змінних, причому 99 % з них не потрібні для створення конкретного сайту.

У чистому варіанті серверна частина сайту – це база даних і файли. Місце, де зберігається інформація, яку браузер розпізнає як веб-ресурс. Насправді йому в цьому допомагає програміст, що кодує щось на PHP, уточнюючий щось на JavaScript. До цього прикладається верстка HTML/CSS.

Але в будь-якому випадку сервер – це можливість зберегти, прочитати, змінити. У такому контексті, якщо наслідувати класичної людській логіці речей: клієнт завжди правий, то можна змістити центр ваги в браузер і «передати» клієнту кермо «правління». Насправді клієнт нічого не отримає, але за його діями можна планувати поведінку сервера.

При такому підході візит на веб-ресурс ініціює сесію роботи, формує початкові значення змінних, і сформована сторінка відлітає в браузер, ініціюючи роботу конкретного клієнта. Дії цього клієнта призводять до змін, які транслюються на сервер, що відповідає належним чином. Вміст у браузері змінюється адекватно. Наступна ініціатива клієнта – інші зміни.

Перенесення центру ваги з сервера клієнта дозволяє подивитися на веб-ресурс з іншого боку і приділити більше уваги процесам формування контента сайту від реального споживача.