2. Средства безопасности уровня приложения
В стандартный набор функций РНР входит ряд надежных механизмов шифрования. РНР также совместим с многими приложениями независимых фирм, что позволяет легко интегрировать его с защищенными технологиями электронной коммерции (e-commerce). Другое преимущество заключается в том, что исходный текст сценариев РНР нельзя просмотреть в браузере, поскольку сценарий компилируется до его отправки по запросу пользователя. Реализация РНР на стороне сервера предотвращает похищение нетривиальных сценариев пользователями, знаний которых хватает хотя бы для выполнения команды View Source.
Ещё одним из значительных
преимуществ PHP является поддержка широкого круга баз данных
<mhtml:file://D:\Anry\Диссертация\Писанина\PHP.SU%20-%20Основы%20PHP_2.mht!/phpdb/>,
что не маловажно для большинства современных вэб-систем. Создание скрипта,
использующего базы данных, - очень просто. В настоящее время PHP поддерживает
следующие базы данных:
|
Adabas D |
Ingres |
Oracle (OCI7 и OCI8) |
|
dBase |
InterBase |
Ovrimos |
|
Empress |
FrontBase |
PostgreSQL |
|
FilePro (только чтение) |
mSQL |
Solid |
|
Hyperwave |
Direct MS-SQL |
Sybase |
|
IBM DB2 |
MySQL |
Velocis |
|
Informix |
ODBC |
Unix dbm |
Кроме того, PHP поддерживает ODBC (Open Database Connection standard), таким образом, разработчики могут работать с любой базой данных, поддерживающей этот всемирно признанный стандарт.
Наконец, средства РНР позволяют программисту работать с внешними компонентами, такими как Enterprise Java Beans или СОМ-объекты Win32. Благодаря этим новым возможностям РНР занимает достойное место среди современных технологий и обеспечивает масштабирование проектов до необходимых пределов.
Вот далеко не полный список основных возможностей и достоинств замечательного языка PHP.
Как было сказано выше язык не ограничивает разработчиков в выборе сервера, т.е. программы написанные на языке РНР будут работать одинаково на любых серверах! Тем не менее к выбору сервера всё же надо подходить очень серьёзно и осознанно, проведя перед этим соответствующие сравнения и тестирования. Тестовый портал данной диссертации подразумевает функционирование под началом сервера Apache. Рассмотрим характеристики данного вэб-сервера.
Во-первых, хотелось бы отметить, что на сегодняшний день Apache поддерживает функциональность приблизительно девятнадцати миллионов WWW-серверов (по данным Netcraft). Такой несомненный успех провоцирует на внимательный анализ - повторить достижение Apache было бы приятно не только любой группе разработчиков проекта с открытыми исходниками, но и любой коммерческой фирме [30].
Причины успеха Apache можно разделить на две группы: технологические причины, связанные с техническими преимуществами перед конкурентами, и нетехнологические.
Технологическое лидерство. В начальный период своей истории Apache был одним из технологических лидеров на рынке - производительность была достаточно велика, потребности в ресурсах - малы. При этом программа обладала возможностью легкого расширения путем добавления модулей, причем реализованы они были много лучше, чем у конкурентов. Возможность легкого расширения обусловила появление большого количества производных от Apache серверов - Stronghold, Apache/SSL, разнообразных систем создания динамических сайтов (Apache/mod_perl, PHP и др.), удовлетворяющих большинство потребностей Web-разработчиков по сегодняшний день [18].
Технологический консерватизм. Авторы популярных программ быстро оказываются заваленными пожеланиями пользователей. Если им следовать, то программы перегружаются функциональностью, нужной только малому числу клиентов, а сложность кода растет одновременно с числом проблем. Авторам Apache удалось сохранить необходимый баланс в этой области, разрабатываемое ими ПО имеет репутацию стабильного и предсказуемого [30].
Открытость процесса разработки. Процесс разработки Apache открыт для наблюдения и комментирования всем желающим и потому предсказуем. Это позволяет выпускать дополнительные модули к новым версиям практически одновременно с их выходом [18].
«Демократическая» разработка. В проекте Apache реализована уникальная схема разработки - по каждому изменению проводится голосование, причем «существенные» изменения могут быть остановлены правом вето любого члена группы разработчиков, а несущественные - должны набрать больше голосов «за», чем «против». Такая схема позволяет блокировать сомнительные технологические решения, поддерживая технологический консерватизм.
Поддержка пользователей. Несмотря на огромную пользовательскую базу и некоммерческий статус, поддержка Apache была и остается очень хорошей по качеству - сообщения о проблемах анализируются в течение одного-двух дней [18].
Лицензирование. Существенной причиной успеха Apache является действительно свободное лицензирование. Apache License, в отличие от наиболее распространенной в среде ПО с открытыми исходниками лицензии GNU GPL, не навязывает свободное распространение производных работ, а требует лишь сохранения права на имя - указания, что производный проект использует код, разработанный Apache Group <#"871278.files/image006.gif">
Рис.4.3.1. Утилита
"Службы" позволяет конфигурировать службы, выполняемые на вашей
машине
Установка переменной PATH. MySQL поступает со множеством утилит командной строки, каждая из которых характеризуется своей степенью удобства в использовании. Ни одну из них не удастся просто так вызвать, если только имя каталога бинарных файлов MySQL не будет включено в переменную окружения PATH. Назначение упомянутой переменной состоит в том, что она указывает Windows, где искать исполняемые файлы [19].
Многие из используемых в командной строке Windows команд являются внутренними, и они встроены в командный интерпретатор cmd.exe. Другие команды, такие как format или ipconfig, имеют свои собственные исполняемые файлы. Не стоит и говорить, что необходимость ввода, например, C:\WINNT\system32\format <C:\Users\Пользователь\AppData\WINNT\system32\format>, является совершенно неприемлемой.
Точно так же неудобно было бы набирать «С:\mysql\bin\mysql <C:\mysql\bin\mysql>» для запуска монитора MySQL. Имена каталогов, в которых хранятся исполняемые файлы базовых Windows-команд, подобные format.exe, автоматически помещаются в переменную PATH, что позволяет в любом месте просто набирать так: format. Таким образом, дабы достичь той же степени удобства и в отношении утилит MySQL, мы должны добавить в переменную PATH соответствующую информацию [20].
Щелкаем на кнопке «Пуск», выберите в меню «Настройка», а затем «Панель управления». Дважды щелкаем на элементе «Система» (System) и переходим на вкладку «Дополнительно» (Advanced). Щелчок на кнопке «Переменные среды» (Environment Variables) приводит к отображению диалогового окна, в котором можно просмотреть все переменные окружения, определенные в системе. Дважды щелкаем на переменной PATH и отредактируем её значение.
Добавим точку с запятой в конце текущего значения и добавим полный путь к BIN-каталогу MySQL (например, c:\mysql\bin <C:\Users\Пользователь\AppData\mysql\bin>). После щелчка на кнопке ОК новое значение PATH будет сохранено в системном реестре. Изменения вступят в силу после перезагрузки машины. После перезагрузки мы будем иметь возможность запуска и манипулирования СУБД MySQL из любого каталога.
Удаление анонимного пользователя. Конфигурация MySQL, устанавливаемая по умолчанию, дает возможность любому пользователю получить доступ в систему, не вводя ни имени пользователя, ни тем более пароля. Очевидно, что подобное совершенно неприемлемо [19].
Одной из первых вещей, которые потребуется проделать, является удаление анонимного пользователя. Для этого откроем окно командного интерпретатора и введём следующие команды:
c:\mysql\bin\mysql <C:\Users\Пользователь\AppData\mysql\bin\mysql> -u root
use mysql
delete from user where User='';
c:\mysql\bin\mysqladmin <C:\Users\Пользователь\AppData\mysql\bin\mysqladmin> -u root reload
Теперь анонимный пользователь больше не присутствует в нашей конфигурации.
Установка пароля пользователя root. Даже учетная запись суперпользователя root сейчас не имеет пароля. Для установки пароля для такого пользователя введём следующие команды:
c:\mysql\bin\mysqladrain <C:\Users\Пользователь\AppData\mysql\bin\mysqladrain> -u root password ваш_пароль c:\mysql\bin\mysqladmin <C:\Users\Пользователь\AppData\mysql\bin\mysqladmin> -и
root -h имя_вашего_хоста password ваш_пароль
Теперь мы должны заметить, что команды, которые ранее не требовали ввода комбинации имя пользователя/пароль, теперь не выполняются [19]. Попытка выполнить команду:
c:\mysql\bin\mysqladmin <C:\Users\Пользователь\AppData\mysql\bin\mysqladmin> reload
или
c:\mysql\bin\mysqladmin <C:\Users\Пользователь\AppData\mysql\bin\mysqladmin> shutdown
теперь терпит неудачу.
Начиная с этого момента, нам потребуется с помощью флага -u указывать имя пользователя, а с помощью флага -р - пароль, например:
c:\mysql\bin\mysqladmin <C:\Users\Пользователь\AppData\mysql\bin\mysqladmin> -u root -p reload
После этого MySQL предложит нам ввести пароль для пользователя root, который мы только что установили.
А сейчас все готово к инсталляции Apache под Windows.
Инсталляция Apache под Windows
Сервер Apache 1.3 и последующие версии разработан так, чтобы выполняться под управлением операционных систем Windows NT, 2000 и ХР. Программа установки работает только на семействе процессоров х86, таких как произведенные компанией Intel. Сервер Apache также может выполняться под Windows 95 и 98. Во всех случаях в системе должен быть установлен протокол TCP/IP. Под Windows 95 и 98 следует убедиться в наличии библиотеки Winsock 2 [18].
Зайдя на сайт #"871278.files/image007.gif">
Рис. 4.3.2.
Программа установки Apache
проста в использовании
■ Хотим ли мы запускать Apache как службу. Как и в случае с MySQL, на этот вопрос лучше ответить утвердительно.
■ Тип инсталляции. Рекомендуется отдавать предпочтение варианту "Полная" ("Complete"), тем не менее, мы можем выбрать и вариант "Выборочная" ("Custom"), если, например, решили не устанавливать некоторые компоненты, скажем, документацию.
■ Каталог, в который необходимо установить Apache. (По умолчанию это
C:\Program <C:\Users\Пользователь\AppData\Program> Files\Apache Group\Apache.)
После ответа на все перечисленные вопросы сервер Apache будет установлен и запущен.
После запуска Apache будет прослушивать порт 80 (если только не изменить установки Port, Listen или BindAddress в конфигурационном файле). Для подключения к серверу и доступа к странице по умолчанию запустим браузер и введем следующий URL-адрес:
#"871278.files/image008.gif">
Рис.4.3.3. Функция phpinfo() выдаёт полезную информацию о конфигурации
И теперь нам нужно скопировать файлы тестового портала (папка «Test_Portal») в корневой вэб-каталог сервера, в нашем случае это каталог - «C:\Program <C:\Users\Пользователь\AppData\Program> File\Apache Group\Apache\htdocs». После успешного копирования файлов нам потребуется создать первоначальную базу данных портала с помощью файла «testportal_create.sql». Данный файл располагается в только-что скопированной папке «SQLs». Этот файл нужно запустить из любой командной строки, набрав следующую строку:
mysql -u root -p < testportal_create.sql
после чего MySQL потребует ввода пароля суперпользователя «root», который был указан при установке СУБД. Затем при вводе правильного пароля будет создана начальная (пустая) БД тестового портала, первичное заполнение которой ведётся администратором с помощью скрипта «admin.php», находящегося в папке ADMIN.
И наконец, для окончательной уверенности нужно убедиться, что сам портал успешно установлен. Для этого введём в браузере адрес следующего вида:
http://localhost/test_portal/admin/admin.php
Если в браузере отобразится страница
похожая на страницу, показанную на рис. , значит портал был успешно установлен
и готов к работе! На этом процесс установки тестового портала завершён.
4.4 Инструкция по использованию
портала
Как говорилось выше - портал состоит из трёх блоков - администраторский, операторский и студенческий. Рассмотрим особенности работы с порталом отдельно по каждому блоку.
Админ-модуль
Для работы с администраторским блоком необходимо ввести в адресную строку браузера #"871278.files/image009.gif">
Рис.4.4.1. Окно авторизации для входа в админ-модуль
Рис.4.4.2. Главное окно интерфейса
администратора
После успешной авторизации перед нами появится
интерфейс администратора (рисунок 4.4.2). Здесь в левом углу имеется основное
меню для манипулирования данными портала. Меню «Персональные данные» позволяет
сменить фамилию, имя, отчество и e-mail
администратора посредством ввода новых данных и нажатия кнопки «Применить»
(рисунок 4.4.3).
Рис.4.4.3. Смена персональных данных
администратора
Далее имеется меню для смены пароля, после нажатия на него откроется специальная форма для ввода нового пароля (рисунок 4.4.4):
Рис.4.4.4. Окно смены пароля
администратора
По нажатию на ссылку «Добавить пользователя»
откроется форма для ввода нового оператора портала. Здесь потребуется ввести
фамилию, имя, отчество, е-mail,
логин и пароль оператора (рисунок 4.4.5):
Рис.4.4.5. Окно ввода нового оператора
Причём если в базе уже имеется оператор с только
что введённым логином, то новый оператор не будет добавлен и выдастся
соответствующее сообщение о дубликации логина. Всех пользователей портала можно
просмотреть через меню «Юзеры» - появится страница со списком операторов
портала, подобная изображённой на рисунке 4.4.6:
Рис.4.4.6. Страница «ЮЗЕРЫ»
На этой странице так же имеется возможность удаления операторов как всех сразу, так и выборочно с помощью кнопки «Удалить» и соответствующих меток.
С помощью меню «Поиск юзеров» администратор
может найти операторов портала согласно введённых параметров запроса поиска.
Поиск можно произвести по одному или нескольким параметрам, в частности - по
Ф.И.О., адресу электронной почты и логину (рисунок 4.4.7). После нажатия на
кнопку «Поиск», если в базе данных портала имеются операторы с указанными
данными, появится страница со списком найденных пользователей. В противном
случае появится сообщение о том, что в базе данных таких пользователей не
найдено. Аналогично происходит и процесс поиска студентов портала посредством
меню «Поиск студентов».