Методические указания к лабораторным работам для студентов iii курса автф
Скачать 1.96 Mb.
|
ЛАБОРАТОРНАЯ РАБОТА № 6Подключение компонент сторонних разработчиков на примере CKEditor, KCAPTCHA. Цель работы Изучить особенности подключения к сценариям PHP компонент сторонних разработчиков, освоить применение автоматизированных тестов Тьюринга. Краткие теоретические сведения При разработке web-сайтов часто требуются типовые решения, такие, как online-редактор HTML-кода, автоматизированный тест Тьюринга для защиты от спама в досках объявлений, и другие. Подобные модули несложно разработать самостоятельно, однако существуют готовые решения с открытым исходным кодом. Рассмотрим подключение и применение двух наиболее популярных решений. Текстовый редактор CKeditor обладает большим количеством разнообразных функций и поддерживается большинством современных браузеров. Он оформлен в стиле MS Word, что делает обращение с ним более привычным. CKeditor можно скачать с сайта разработчика http://ckeditor.com. Существует его реализации почти для десятка языков программирования, но рассмотрим только на php. Распакованный архив копируется в папку сайта, после чего необходимо подключить файл: include_once("fckeditor/fckeditor.php") ; ?> Теперь можно использовать редактор. Для этого просто добавляем следующий код внутри тега Отформатированный в окне редактора текст передается методом POST и может быть сохранен в файле или базе данных. Если редактор размещается на странице, вход на которую не требует авторизации, то гостевая книга или доска объявлений окажутся быстро переполненными спамом, рассылаемом соответствующими программами. Для того, чтобы разрешить добавление записей только человеком, требуется провести автоматизированный обратный тест Тьюринга, известный также, как CAPTCHA (от англ. Completely Automated Public Turing test to tell Computers and Humans Apart — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей). Иными словами, это задача, которую легко решает человек, но которую не может выполнить компьютер. Чаще всего CAPTCHA выглядит как тем или иным образом зашумленное случайное число, слово или иная надпись, которую пользователю нужно прочитать и ввести прочитанный результат, хотя существуют и другие алгоритмы. Проект KCAPTCHA — это готовое решение, написанное на языке PHP, которое вы можете бесплатно скачать и установить на свой сайт для защиты от спама и флуда. Проект KCAPTCHA ставит перед собой цель предложить программисту решение с одной стороны весьма защищенное, с другой — максимально малотребовательное к ресурсам и конфигурации хостинга. Пример: Принцип действия: скрипт стартует сессию и записывает в нее под именем $_SESSION['captcha_keystring'] случайным образом сгенерированную строку, после чего выдает изображение, содержащее эту самую строку в зашумленном виде. При проверке пользовательского ввода остается только прочитать из сессии кодовую строку и сравнить с тем, что ввел пользователь. Системные требования: PHP версии 4.0.6 и выше с поддержкой GD версии 2. В комплект входит набор растровых шрифтов, так что скрипт, скорее всего, будет сразу готов к работе, не требуя установки дополнительных компонент. Можно настраивать цвета и набор символов, применяемые при создании изображения. Все настройки, касающиеся KCAPTCHA, располагаются в файле kcaptcha_config.php. Здесь можно задать вид отображаемого проверочного кода. Скачать KCAPTCHA 2.0 можно здесь: http://www.captcha.ru/kcaptcha.zip Пример подключения онлайн-редактора и сценария формирования кода подтверждения см. здесь: http://gun.cs.nstu.ru/web/labs/lab6/ / Методические указания Для разработки сценариев применяйте любые доступные текстовые редакторы, например, Jview или Notepad++. Сценарии располагаются на сервере с адресом 217.71.139.72, подключение к которому производится по протоколу FTP с именем учетной записи userNM, где N – порядковый номер группы, M- номер студента по журналу, пароль сообщается преподавателем. Лабораторная работа выполняется в отдельной папке на сервере, куда копируются сценарии лабораторной работы №2 для модификации. При настройке клиента FTP необходимо установить пассивный режим. При разработке страниц периодически сохраняйте их и проверяйте их отображение в любом из доступных браузеров. При написании сценариев обращайте внимание на кодировку русского текста, правильность написания HTML-тегов, имен переменных и функций PHP, парность открывающих и закрывающих кавычек в операторе echo. При отладке сценариев обновляйте содержимое окна браузера при нажатой клавише Shift. Для запрета кэширования web-страниц на локальном диске формируйте в сценариях заголовок header(expires='-1d'). По окончании лабораторной работы запишите документы сайта на сменный носитель для сохранения и распечатки. Порядок выполнения работы Модифицировать файл сценария отображения формы подключением модуля редактора и модуля генерации кода подтверждения. Модифицировать сценарий записи в файл содержимого формы проверкой сеансовой переменной с кодом подтверждения, при несовпадении сформировать ссылку на файл с формой. Отладить сценарии, убедиться в корректном отображении окна редактора и изображения с кодом подтверждения, продемонстрировать их работоспособность преподавателю. Сохранить на локальной машине и распечатать файлы отлаженных сценариев. Варианты заданий Задания различаются списком полей формы, реализованной в соответствии с заданиями к лабораторной работе №2, и являются модификацией лабораторной работы №2. Содержание отчета Цель работы. Вариант задания. Листинги сценариев. Выводы по работе. Контрольные вопросы Какие еще подключаемые редакторы существуют? В чем их отличия от использованного? Какая технология программирования использована при написании CKEditor? Из чего это следует? Всеми ли браузерами поддерживается CKeditor? Возможна ли настройка отображаемых в редакторе кнопок? Если да, то каким образом? Дайте определение классического теста Тьюринга. Чем от него отличается CAPTCHA? Разберите строку подключения KCAPTCHA 2.0. Каков принцип действия пакета KCAPTCHA 2.0? Какие алгоритмы проверки входят в пакет KCAPTCHA 2.0? Какие еще алгоритмы Вы можете предложить? Каковы системные требования для пакета KCAPTCHA 2.0? Как и где настроить вид отображаемого проверочного кода? |