Как сделать свой сайт на PHP и HTML


Как самому сделать движок для сайта

Я решил сегодня привести пример простого движка сайта на PHP и HTML. Почему HTML, а не MySQL? Ну потому, что сам алгоритм работы движка во многом схож, и простой пример сайта на HTML будет более легок для усвоения.

Простой движок сайта на PHP

Простой движок сайта на PHP

О том, что обычно шаблон сайта состоит из шапки, подвала и основной части я уже писал здесь. Поэтому теперь переходим к динамическому выводу контента страниц. Чаще всего возникает (ну у меня во всяком случае:) необходимость создания сайта визитки из 10-20 статических страниц. И все бы нечего, но иногда возникает необходимость добавить новую страницу, или удалить ссылку на старую. И если сайт написан на чистом HTML, то придется на каждой из 20 страниц в ручную добавлять или удалять ссылку) Я думаю, что не стоит объяснять насколько этот процесс может быть трудоемким, в тот же момент ничто не мешает его немного автоматизировать.

Для того, чтобы работать с web приложением, необходимо развернуть веб сервер на localhost (локальном компьютере) и здесь можно использовать Denwer на Windows или XAMPP на Linux, для этого его необходимо скачать и установить. Но технические вопросы установки веб сервера Apache мы опустим потому, как в интернете можно найти очень много информации на этот счет, и перейдем прямо к делу. 😉

Начнем отталкиваться от того, что у нас уже есть три скритпа:

options.php;   //скрипт который отвечает за подключение файлов HTML
maketop.php;  //скрипт вывода заголовка
makefooter.php;  //скрипт вывода подвала сайта

Теперь нам необходимо создать сценарий, который будет отвечать за вывод ссылок, все делаем по аналогии:

<?
 include($links);
?>

А в options.php; добавляем вот этот код:

<?
$pagetop = ‘./template/top.htm’;
$links = ‘./template/links.htm’;
$pagebottom = ‘./template/bottom.htm’;
?>

В итоге у нас должен получится вот такой index.php

<?

define (‘PRO’, 1);
include(‘options.php’);
include(‘maketop.php’);
include(‘links.php’);

if (isset($_GET[‘act’]))
$file=‘template/news.html’;
{
if ($_GET[‘act’]==1)
$file = ‘template/news.html’;

if ($_GET[‘act’]==2)
$file = ‘template/download.html’;

if ($_GET[‘act’]==3)
$file = ‘template/story.html’;

if ($_GET[‘act’]==4)
$file = ‘template/contacts.html’;

include($file);
}
include(‘rlinks.php’);
include(‘makebottom.php’);
?>

Ну а теперь разберем наш движок сайта с позиции безопасности

Взлом и защита сайта на PHP

Взлом и защита сайта на PHP

При разработке нашего движка сайта, первое на что стоит обратить внимание так это на то, что бы переменные были проинициализированны. А именно переменная $file, которая подключает наши HTML файлы. И поэтому в начале проверки условия скрипта index.php необходимо переменной $file присвоить значение по умолчанию:

$file=‘template/news.html’;

Это помешает в первую очередь взломщику, задать произвольное значение через строку URL. Следующая уязвимость заключается в том, что злоумышленник может выполнить прямой вызов промежуточных файлов, а именно обратиться к файлу links.php напрямую, используя строку браузера, ведь данные передаются методом GET. И тогда пример взлома ПХП скрипта может выглядеть так:

my_sites.com/links.php?links=.htaccess

В данном случае уязвимость заключается в том, что взломщик делает прямой вызов промежуточных скриптов, и таким образом воздействует на переменные. Поэтому необходимо сделать запрет на изменение переменных, в самом начале файла index.php следующим образом:

<?
define (‘PRO’, 1);  //создаем константу равную единице, и потом проверяем
?> 

Соответственно в каждом промежуточном файле (makefooter.php;  maketop.php; links.php; rlinks.php) дописываем:

<?
if(!defined(‘PRO’))
die (‘не нужно взламывать мой сайт!’);
?>

Вот такой у нас получился простой движок сайта визитки на ПХП. Скачать бесплатно движок сайта можно по ссылке внизу.

Скачать

 

P.S.  Я немного доработал т. е. изменил этот интернет проект, добавив ЧПУ ссылки. Поэтому, посмотреть на пример создания ЧПУ на ПХП и скачать обновленный исходник, можно тут.