Надеюсь, этот вопрос не слишком глуп. Я новичок в PHP и заинтересован в разработке системы для внутреннего использования персонала. (Таким образом, всем пользователям доверяют - и любой их ввод будет проходить через PDO)
Однако эта система будет размещена в Интернете.
Было бы просто использовать PDO, .htaccess (для ограничения доступа к каталогу) и перенаправлять пользователей при неудачном входе в систему (поэтому пользователи без учетной записи не могут получить доступ ни к одной странице, кроме страницы входа в систему - следовательно, ограничиваются вводимые SQL-инъекции от злоумышленников .. ?) будет достаточно для размещения сайта в сети?
Не рассматривал возможность использования фреймворка, но мне интересно, как именно он будет работать для веб-сайта, который не позволяет публике видеть что-либо, кроме страницы входа? (По крайней мере, я так думаю?)
Для .htaccess,
deny from all
используется.
Для моего index.php он создает новый класс Template Controller
$template = new TemplateController();
$template->template_controller();
Ниже следует класс TemplateController:
<?php
class TemplateController
{
public function template_controller()
{
include "views/template.php";
}
}
Тогда, наконец, template.php имеет
if (isset($_SESSION["loggedIn"]) && $_SESSION["loggedIn"]) {
if (isset($_GET["route"])) {
if ($_GET["route"] == "home" {
include "modules/" . $_GET["route"] . ".php";
}
} else {
include "modules/404.php";
}
} else {
include "modules/login.php";
}
для обработки перенаправления пользователей, которые не вошли в систему. Модули включаются, только если у пользователя есть действительный сеанс.
Итак, с этой структурой, как будет атакован веб-сайт, если, возможно, я использую план виртуального частного сервера, чтобы разместить его на домене? Просто хотел узнать, чем фреймворк будет отличаться от установки, подобной моей.
Заранее спасибо!
РЕДАКТИРОВАТЬ: я не упомянул, как защищена страница входа в систему.
Я использую preg_match для этого.
if (preg_match('/^[a-zA-Z0-9]+$/', $_POST['inUsername']) &&
preg_match('/^[0-9A-Za-z!@#$%^&*(),.<>?\/\-_=+ ]+$/', $_POST['inPassword']))