Vladsvn
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Я планирую вот такую структуру url страниц: /wowa/leto/ . Без динамической части. Проверка допустимости url на буквы, цифры, дефис и слеши. Это одновременно и защита от инъекций. А служебные и сервисные файлы могут иметь динамическую часть: /leto.php?abc=12&bcd=22 Но это только реально существующие файлы, и их будем проверять соответствующим образом на допустимость параметров отдельно в том скрипте, в котором будут использоваться. На единую точку входа они не попадут. Сейчас на странице index.php такой код: include '../config.php'; $url = $_SERVER['REQUEST_URI']; // Проверка по маске. Только латиницa, цифры, дефис и слеш $url = strtolower($url); if (!preg_match("#^[a-z\d\-\\\\]+$#", $url)) { $url = trim($url, '/'); $query = mysqli_query($db, "SELECT * FROM `content` WHERE `url` = '$url'"); $row = mysqli_fetch_assoc($query); if ($row) { header("Cache-Control: public, max-age=2500000"); $text = $row['text']; echo ($text); } else { header("HTTP/1.1 404 Not Found"); readfile(__DIR__ . '/error404.html'); } } else { header("HTTP/1.1 404 Not Found"); readfile(__DIR__ . '/error404.html'); } В базе простейший HTML код страницы. Вроде бы, работает: на правильный url, имеющийся в базе, показывает записанную в базе страницу, на остальные дает страницу 404. Как полагаете, можно использовать эту конструкцию? | Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 20:39 27-01-2023 | Исправлено: Vladsvn, 21:20 27-01-2023 |
|