На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

ФУНКЦИИ JAVASCRIPT

Как и в Java или C/C++, для разделения больших задач на более элементарные в JavaScript используются функции. Подобно функциям языка Java, функции
JavaScript могут получать параметры и возвращать значения. Разница между фун­кциями Java и JavaScript заключается в том, что для определения функции в JavaScript используется ключевое слово function. Кроме того, вы не должны ука­зы пап, типы параметров и возвращаемого значения:
function SomeName (parameter_l, parameter_2)
{ '
// операторы return
На компакт-диске есть HTML-файл Functions. н TML иллюстрирующий исполь­зование функций в сценариях JavaScript. В этом файле используются два сцена­рия; в каждом из них определяются свои собственные функции.
ОБЪЕКТЫ JAVASCRIPT
Как и Java, JavaScript является объектно-ориентированным языком программи­рования. Это значит, что JavaScript поддерживает использование объектов. Объект — это набор взаимосвязанных переменных и функций, объединенных в одно целое. Как уже говорилось, функции класса называются методами. Чтобы вы могли лучше представлять себе объекты JavaScript, рассмотрим стандартные
объекты этого языка программирования.
Объект _ Назначение
Date Возвращает текущую дату
Document Позволяет записать данные в HTML-страницу
Form Позволяет сценарию собирать и выводить данные
History Дает пользователю возможность получить доступ
к журналу
Location Дает пользователю возможность управлять текущим
URL
Math Определяет несколько ключевых функций и констант
String Хранит и обрабатывает строку символов
Windows    _    Позволяет    сценарию    создавать    окна    и    кадры _    Стандартные объекты JavaScript.
На компакт-диске расположен HTML-файл JSObjects. Н tml иллюстрирующий
использование объектов Date и Math в сценариях JavaScript. СОЗДАНИЕ СОБСТВЕННЫХ ОБЪЕКТОВ
дополнение к использованию стандартных объектов можно создать
в сценарии свои собственные объекты. Для этого нужно выбрать имена полей. По­ля объекта инициализируются с помощью функции-конструктора (ее имя совпада­ет с именем объекта). Следующий фрагмент программы иллюстрирует использо­вание функции-конструктора для инициализации объекта Book с тремя полями:
function Book (title, author, price) {
this.title = title; this, author = author; this, price —price;
Функция использует ключевое слово this для присвоения значений полям имен­но того объекта, который инициализируется конструктором.
На компакт-диске расположен HTML-файл SimpicBook.HTMI. иллюстрирую­щий использование объекта Book.
Объект Book был достаточно простым в том отношении, что содержал только поля. Иными словами, в этом объекте нет методов (функций), которые дей­ствуют на эти поля. Чтобы снабдить объект методом, нужно определить его как функцию JavaScript, а затем присвоить ее соответствующему полю объекта. На компакт-диске расположен HTML-файл ObjectsMethods.HTMБллшюстрирующий использование объекта Book. Просматривая этот файл с помощью броузера Netscape Navigator, вы увидите текст.
СОБЫТИЯ JAVASCRIPT
В среде Windows или броузера программы должны отвечать на многочисленные события, вроде нажатия клавиши или перемещения указателя мыши. Как уже говорилось, в Java для обработки событий используются так называемые обработ­чики событий. Обработчик события — это специальная функция, исполняющая некоторые действия программы в ответ на появление определенного события. С
другой стороны, в JavaScript обработчики событий являются сценариями. В этом языке определено несколько событий, на которые может реагировать сценарий. Краткое описание событий JavaScript приведено в таблице 20.2.
Событие_Назначение_
Возникает в том случае, если пользователь щелкает мышью вне текущего поля
Возникает в том случае, если пользователь изменяет значение в форме
Возникает в том случае, если пользователь щелкает мышью в поле формы
Возникает в том случае, если пользователь выбирает
элемент формы
Возникает в том случае, если броузер загружает
страницу .
Возникает в том случае, если пользователь перемещает указатель мыши в области гиперссылки
Возникает в том случае, если пользователь выбирает поле формы
Возникает в том случае, если пользователь передает
форму
Возникает в том случае, если пользователь переходит _к другой HTML-странице_
JavaScript.
ИСПОЛЬЗОВАНИЕ JAVASCRIPT для ВЗАИМОДЕЙСТВИЯ с ФОРМАМИ
В этой главе я уже рассказал о том, как создавать сценарии CGI с помощью различных языков программирования (С/С-Ы . Perl и т.д.). Они позволяют пользо­вателю взаимодействовать с расположенными на сервере программами. Для раз­работки таких сценариев вы использовали языки программирования, которые могут динамически создавать HTML-файлы, реализующие формы, которые пред­лагают пользователю окна для ввода текста, флажки и т.д. того как пользо­ватель введет данные в форму, броузер отправляет их специальной программе, которая расположена на сервере.
Основное различие между сценариями JavaScript и CGI заключается в том, что в JavaScript можно определить функции обработки введенных пользователем дан­ных, которые будут выполняться внутри броузера (а не на сервере). С другой стороны, сценарии CGI выполняются на сервере. За более подробной информа­цией о создании сценариев CGI с помощью JavaScript обратитесь на Web-сайт, расположенный по адресу http://gmccomb.com/javascript/valid.htm.
LiveWire
Сростом популярности JavaScript растет и количество средств, облегчающих создание программ на этом языке. Например, компания Netscape создала программу LiveWire— визуальную среду разработки приложений стороны сервера. С ее помощью можно создать сценарии JavaScript, эквивалентные сценариям Perl или C/C++. Посредством JavaScript можно создавать сценарии, которые могут выполняться в броузере или на сервере.
ПРИСУЩИЕ JAVASCRIPT ПРОБЛЕМЫ БЕЗОПАСНОСТИ
Как и для большинства описанных в этой книге технологий, для JavaScript ха­рактерны некоторые проблемы, связанные с безопасностью. Далее приводится описание некоторых из них:
• Программы JavaScript могут считывать файлы журнала и cookie.
• Программы JavaScript могут считывать URL-кэш пользователя.
• Программы JavaScript могут подделать сообщение электронной почты и украсть адрес пользователя.
• Программы JavaScript могут рекурсивно просматривать локальные диски.
• Программы JavaScript могут открыть окно размером в один пиксел и запи­сать с его помощью информацию обо всех использовавшихся URL.
Компания Netscape исправила многие из этих ошибок в Netscape Navigator 2.01. Например, теперь этот броузер отключает метод submit в форме электронной почты. Теперь хакеры не могут просто так взять и подделать сообщение или украсть.адрес пользователя.
ПРОБЛЕМЫ БЕЗОПАСНОСТИ новых ВЕРСИЙ NETSCAPE NAVIGATOR
К сожалению, если вы используете Netscape Navigator версий 3.0, 3.01 или 4.0 (с подключенными функциями поддержки JavaScript), то это не значит, что вы полностью защищены от нападений. Сервер хакера может загрузить на ваш ком­пьютер любой файл, и вы даже не узнаете об этом. Например, страница хакера может записать на локальный диск:
document, open ("Can I write to your disk?") document.write("") document.close()
Чтобы записать файл на локальный диск, пользователь должен с помощью диа­логового окна Сохранить как указать имя сохраняемого файла. Но сервер все равно может записывать данные на диск. Таким образом, ловкий хакер способен указать, что для просмотра страницы требуется специальная надстройка (plug-in), и отобразить диалоговое окно этой надстройки. Однако после загрузки такой надстройки последняя может удалить все файлы на вашем диске или создать соединение с сервером хакера.
Если же вы присоединяетесь к такому серверу с помощью машины, работающей под управлением Windows NT, то такая программа JavaScript вызовет сбой в системе. В системах Unix программы JavaScript могут вызвать сбои в работе ядра, если пользователь не откроет новое окно Netscape Navigator до того, как посетит следующую страницу JavaScript. И наконец, щелчок мышью по расположенной в диалоговом окне Сохранить как кнопке Отмена вызовет сбой Windows 95 или MacOS, или как минимум сбой Netscape Navigator. (Обратите внимание: файл не будет закрыт до тех пор, пока вы не выйдете из Netscape Navigator, поэтому у вас есть шанс обнаружить проблему до того, как она проявит себя «в полную силу».)
ОШИБКА BELL LABS
Координационный центр CERT сообщил компании Microsoft о проблеме, с
помощью которой хакер может удаленно наблюдать за перемещениями пользо­вателя по Web. Некоторые броузеры, поддерживающие JavaScript (вроде Netscape
Navigator и Internet Explorer), обладают подобными проблемами безопасности.
Чтобы избавиться от них, посетите Web-сайт компании Microsoft, расположен­ный по адресу http://www.microsoft.com. Там вы найдете специальную «заплатку» для Internet Explorer 3.02, призванную решить эту проблему. Она работает только в том случае, если вы не установили дополнение для передачи файлов. Однако компания Microsoft обещала в скором времени выпустить заплатку и для броузе­ров с этим дополнением.
СУЩНОСТЬ ОШИБКИ BELL LABS
Воспользовавшись открытой в Bell Labs ошибкой, хакер может прослеживать перемещения пользователя по Web. Как же это происходит? Допустим, что поль­зователь попал на Web-сайт хакера. В этом случае последний может открыть в броузере пользователя «затененное» окно и с его помощью прослеживать все перемещения пользователя по Web. От такой атаки не сможет защитить даже брандмауэр или безопасное соединение HTTP. Достаточно трудно спрятать вто­рое окно так, чтобы его совсем нельзя было обнаружить. Чтобы обнаружить окно, созданное хакером, пользователю достаточно свернуть все свои окна. С помощью своего окна хакер может отмечать действия пользователя и получать следующую информацию:
• Посещаемые пользователем URL
• Данные, введенные пользователем в HTML-формы
• Установленные в файле cookie значения

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика