Автор работы: Пользователь скрыл имя, 06 Сентября 2013 в 11:17, курс лекций
Основные понятия Web – технологий.
Историческая справка развития Web - технологий.
Обзор типов Web – приложений.
JAVA-servlets
Сервлеты - это высокопроизводительные платформо-независимые server-side-пpиложения, написанные на Java и составляющие реальную конкуренцию таким технологиям, как CGI, PHP3, Perl, и уж конечно ASP.
Java-сервлеты были созданы в Sun. Сервлеты похожи на CGI-сценарии тем, что это код, создающий документы. Тем не менее, сервлеты, поскольку они используют Java, должны быть скомпилированы перед запуском как классы, которые динамически загружаются веб-сервером при запуске сервлетов. Интерфейс отличается от CGI. JavaServer Pages или JSP - это другая технология, позволяющая разработчикам встраивать Java в веб-страницы, наподобие ASP.
К преимуществам сервлетов можно отнести:
- Исключительно высокая скорость работы.
Быстpодействие сервлетов объясняется тем, что они, во-пеpвых, пpедставляют собою уже скомпилиpованный и оптимизиpованный код и, во-втоpых, выполняются в единожды загpуженной и инициализиpованной Java-машине.
- Переносимость.
- Работа с базами данных.
- Перспективность,
Технология Macromedia Flash
Первоначально программа называлась Splash Animator и продавалась малоизвестной фирмой Future Animation для изготовления мультфильмов на PC - компьютере. Предназначалась для художников - аниматоров и пользовалась ограниченным успехом, пока в связи с бумом на WWW-приложения такой гигант, как фирма Macromedia, не обратила на нее внимание, купив и переименовав во Flash. Разработчики Flash поменяли интерфейс программы для облегчения и автоматизации разработки проекта. Причем мультимедийный гигант не только сменил название и интерфейс, но и переориентировал пакет на рынок Web-анимации (при этом был предложен и свой, внутренний формат файлов векторной графики "*.swf" , и реализована поддержка для других популярных графических форматов, в том числе и для анимированного GIF), и обеспечил пакету хорошую рекламу.
Однако изменения коснулись
не только внешнего облика, но и содержания.
Во Flash понятие интерактивности значительно
расширилось благодаря использованию
сценариев Action Script (Действия), которые
позволяют авторам разрабатывать достаточно
сложные стили поведения - behaviors (перемещаемые
элементы интерфейса, логику и начальную
математику), впервые дающие возможность
создавать электронные магазины. В результате
программа получила широкое распространение
в среде Web-разработчиков и продолжает
служить хорошим подспорьем профессиональным
аниматорам.
С момента появления в 1996 г. технология Flash стала фактическим стандартом для разработки насыщенных мультимедийных Web-сайтов. В качестве наиболее ярких примеров можно назвать серверы Citibank, Fox, PepsiCola, Paramount, Plymouth, Chrysler, Nestle и Warner Bros.
Для работы во Flash не обязательно иметь какой либо опыт в профессиональном программировании этот позволяет создавать Web узлы с элементами интерактивности без необходимости написания исходных кодов JavaScript, Java или HTML.
PHP и безопасность программ
Важно понимать, что PHP не является защищённым или не защищённым языком программирования. Защищённость или безопасность ваших internet-программ определяется только их кодом.
Глобальные переменные и формуляры
Основной вещью, на которую нужно обращать внимание для обеспечения защищённости программ, является принцип, что всё полученное из вне системы является потенциально опасным.
В PHP очень легко убедиться, является ли переменная опасной или нет. Если в php.ini флаг register_globals установлен в on (активирован), то PHP автоматически генерирует переменные из параметров формуляра и куков (cockies). Плохо разработанные программы исходят из того, что переменные только тогда имеют значения, когда эти значения явно заданы. В случае register_globals = on, это предположение может быть ошибочным.
Рассмотрим следующий код:
<?
if (methode_check()) {
$my_var = true;
}
// ...
?>
Очевидно, что в этом коде мы исходим из того, что переменная $my_var принимает значение true только в том случае, если функция methode_check() так же возвращает true.
Однако в случае register_globals = on, достаточно выполнить для этой страницы page.php?my_var=1 что бы обеспечить работу программы со значением $my_var = true вне зависимости от возвращаемого значения функцией methode_check().
В настоящий момент в PHP существует три возможности решить эту проблему:
- инициализация переменных;
- установить значение флага register_globals в off
- настроить значение
variables_order и правильно использовать
в вашем коде глобальные
Инициализация переменных
Всегда инициализируйте переменные. При этом дырка, показанная в примере выше, была бы закрыта вот так просто:
<?
$my_var = false;
if (methode_check()) {
$my_var = true;
}
// ...
?>
В случае, если конфигурационное значение error_reporting в php.ini установить в E_ALL, то будет обеспечено сообщение о том, что сценарий содержит переменные, которые не проинициализированы.
Так к примеру это может выглядеть:
<?
echo $a;
?>
Сообщение сценария:
Notice: Undefined variable: a in c:\myserver\apache\htdocs\
Конечно же когда программа готова, открытые сообщения обо всех ошибках и информационные сообщения должны быть деактивированы, в противном случае эта информация можеть открыть дополнительные возможности для снижения безопасности, или попросту, для взлома программы. Следующие директивы php.ini рекомендуются для рабочих программ:
display_errors = Off
log_errors = On
error_log = C:/myserver/apache/log/php_
Таким образом можно быть уверенным, что сообщения PHP об ошибках никогда не будут открыто показаны на вашем сайте. Однако вместо этого они будут сохранены в файле протоколирования ошибок с целью их анализа.
Таблица 4.1 - Описания ошибок в PHP4 (оригинальный список)
Нас интересуют те ошибки, которые мы можем перехватить. К ним относятся: E_WARNING, E_NOTICE и E_USER_*. Остальные виды ошибок перехвату не поддаются либо из-за того, что происходят они еще до окончания загрузки самого ядра РНР, либо из-за того, что происходят на этапе синтаксического анализа и компилирования РНР-кода, поэтому их вывод придется просто отключить:
ini_set('display_errors',0);
Но я предполагаю, что наши скрипты достаточно отлажены, чтобы в них не было элементарных синтаксических ошибок, поэтому потерять мы ничего не должны.
По умолчанию уровень ошибок в РНР имеет значение E_ALL & ~E_NOTICE (или 2039 в числовой форме), что означает, что мы пропускаем мимо ушей замечания, но сообщаем о всех остальных ошибках.
Кстати, сами разработчики рекомендуют включать на стадии разработки и E_NOTICE - помогает обнаружить потенциально опасные места.
Поэтому изменим уровень вывода ошибок на E_ALL:
error_reporting(E_ALL);
Рекомендуемая литература: 4, 5, 6, 7, 8, 9, 10.
СПИСОК ЛИТЕРАТУРЫ
1. Петров В.Н. Информационные
системы. Учебник. – СПб:
2. Филимонов А.Ю. Протоколы Интернета. СПб: БХВ - Петербург, 2003
3. Найк Д. Стандарты и протоколы Интернета. Пер с англ. – М.: 1999
4. Ганеев Р.М. Проектирование интерактивных Web – приложений. –М.: 2001
5. Успенский И.И. Интернет как инструмент маркетинга. СПб: БХВ – Петербург, 2000
6. Леонтьев Б. Web – дизайн: Хитрости и тонкости: - М.: МиК, 2001
7. Гультяев А.К. Машин В.А. Уроки Web – мастера. СПб.: 2002
8. Гралла П. Хитрости Интернет. – Спб.:Питер, 2006
9. Томсон Л., Веллинг Л. Разработка Web-приложений на РНР и MySQL. – М.:DiaSoft, 2003.
10. www.intuit.ru:.
11. http://dvoika.net/Web/gl1: «Конспект лекций по Web – технологиям».