Ну если подумать правильно то нужно сделать проверку чтобы ваше изображение не соответствовала статистике кода и хоть как-то его защитить.
В принципе код с такой проверкой довольно таки не плох, а в случае если пользователь введет в адресную сироку ссылку с путём до самого файла в системе ему выпадет ошибка.
Спросите почему?
Объясняю:
Для начала первые строки кода нужно чуток изменить.
К примеру делаем проверку на ввод символов в адресную строку:
if ( $_SERVER['REQUEST_URI'] == '/' )
$page = 'home';
else {
if ( !preg_match('/^[A-z0-9]{3,15}$/', $page) ) not_found();
}
и меня ем название папок с файлами с:
all на
all_accessguest на
guest_access
и
auth на
authorized
Этим образом мы сделали название папок уже содержащие больше половины максимальной длинны вводимых символов (15 символов), а так как у нас после
site.domain
в адресной строке будет сочетание символов
/authorized/account.php к примеру, то математика вам в помощь , в этом наборе уже содержаться больше
15 символов, тоесть
23.
Так что будет
ACCESS DENIED !!!!! )))))))))))))))))))))0
После этой проверки , пользователь не сможет ввести в адресную строку меньше 3 и больше 15 символов.
Это первая стадия проверки на безопасность.
Кстати , в место not_found() делайте вывод ошибок например через echo""; или перенаправьте пользователя на страницу 404, в общем как вам угодно.
Дальше!
А далее мы подключаем файл настроек сервера
.htaccess который должен содержать следующий код :
RewriteEngine on
RewriteRule .* index.php [L]
Этим образом, мы запускаем файл настроек и говорим серверу что будем обрабатывать запросы
ТОЛЬКО строго через файл
index.php.
Так что у злоумышленников хоть и есть шансы на взлом, им на это потребуется не мало времени.
В дополнении можно подключить проверку на изменении кодовой структуры что приведёт к блокированию доступа к сайту при попытке взлома , на пример сайт полностью станет для взломщика не доступным из за того что пр и попытке взлома сработала проверка на изменение структуры кода и внесла IP злоумышленника в черный список системы.
Это можно сделать при помощи
PHP и
MySQL.
На этом у меня всё ))).
Желаю всем удачи.