Сценарии JavaScript в активных страницах Web

Вариация вторая: с секретным исходным текстом


Как нетрудно догадаться, исходный текст нашего сценария, расположенный в документе HTML, легко доступен для просмотра любому пользователю, загрузившему этот документ в браузер. Чтобы ознакомиться с ним, достаточно выбрать в меню View строку Source (для браузера Microsoft Internet Explorer) или Document Source (для браузера Netscape Navigator).

Поэтому хотя технически нетрудно применить сценарий JavaScript для ввода, например, пароля доступа к той или иной странице вашего сервера, едва ли это будет целесообразно.

Есть ли средство защитить исходные тексты ваших сценариев от просмотра, одновременно обеспечив их выполнение?

Если ваши пользователи работают с браузером Microsoft Internet Explorer версии 4.0 или с браузером Netscape Navigator, то есть. Это средство - параметр SRC оператора <SCRIPT>, допускающий указывать адрес URL файла сценария.

Наш следующий пример демонстрирует использование параметра SRC.

В листинге 1.2 находится исходный текст документа HTML, содержащий ссылку на файл сценария hello.js.

Листинг 1.2. Файл chapter1/SecretHello/SecretHello.html

<HTML>

  <HEAD>

    <TITLE>Secret Hello</TITLE>

  </HEAD>

  <BODY BGCOLOR=white>

    <H1>JavaScript Test No. 2</H1>



    <SCRIPT LANGUAGE="JavaScript" SRC="hello.js">

    </SCRIPT>

  </BODY>

</HTML>

Ссылка оформлена с применением операторов <SCRIPT> и </SCRIPT>, однако между этими операторами нет ни одной строчки исходного текста. Мы перенесли этот текст в файл hello.js (листинг 1.3).

Листинг 1.3. Файл chapter1/SecretHello/hello.js

document.write("<HR>");

document.write("Hello from JavaScript!");

document.write("<HR>");

В параметр SRC нашего примера задано только имя файла, так как он находится в том же каталоге, что и ссылающийся на него файл документа HTML. Однако вы можете указать и полный адрес URL, например:

<SCRIPT LANGUAGE="JavaScript" SRC="http://www.myserver.ru/scripts/hello.js">


Существенно, чтобы файл, в котором находится исходный текст сценария JavaScript, имел тип js. В противном случае сценарий работать не будет.

Если вы расположили текст сценария в отдельном файле, то его можно подключать указанным выше образом в разные документы HTML. В противном случае этот текст придется включать во все документы HTML, где он нужен. Это приводит к непроизводительным расходам дисковой памяти сервера Web и, что более существенно, к затруднению сопровождения документов - при необходимости изменить сценарий вам придется отредактировать все использующие его документы HTML.

В результате работы нашей второй программы в окне браузера Netscape Navigator появится строка "Hello from JavaScript!", выделенная сверху и снизу горизонтальными линиями (рис. 1.2).



Рис. 1.2. Результат работы сценария, записанного в отдельном файле

Конечно, жаль, что браузер Microsoft Internet Explorer версии 3.02 не распознает параметр SRC в операторе <SCRIPT>. Однако версия 4.0 успешно работает с данным параметром. Дело в том, что параметр SRC включен в новую спецификацию языка разметки гипертекста HTML версии 4.0. При разработке нового браузера Microsoft стремился обеспечить совместимость с этой спецификацией.

И, конечно, раз уже речь зашла про HTML версии 4.0, нельзя не упомянуть про то что при использовании оператора <SCRIPT> вместо параметра LANGUAGE рекомендовано указывать стандартный параметр TYPE в следующем виде:

<SCRIPT TYPE="text/javascript">

// строки сценария JavaScript

  . . .

</SCRIPT>

Этот способ работает в браузерах Microsoft Internet Explorer версии 3.02, 4.0 и Netscape Navigator версии 3.01.

Использовать ли вам параметр SRC при создании своих страниц?

Если вы создаете сервер в сети Internet, то необходимо учитывать тот факт, что пользователи применяют различные браузеры. Наибольшей популярностью по-прежнему пользуется браузер фирмы Netscape, однако доля владельцев бесплатного браузера Microsoft Internet Explorer стремительно растет. Кроме того, есть еще браузеры, работающие на платформе UNIX. На ваш сервер могут зайти даже такие пользователи, которые просматривает страницы серверов Web в текстовом режиме при помощи программы Lynx.

Если вам нужно обеспечить максимальную посещаемость своего сервера, его необходимо сделать так, чтобы с ним можно было работать при помощи любого браузера. Не следует думать, что если вы напишете на главной странице, что ее нужно просматривать только браузером Netscape Navigator, то все владельцы Microsoft Internet Explorer сразу бросятся загружать файл этого браузера из сети. Скорее всего они просто уйдут с вашего сервера на чей-нибудь другой, чтобы больше никогда не вернуться назад.

Лучшее решение заключается в том, чтобы сервер сам определял тип браузера пользователя, подстраиваясь автоматически под его возможности без лишних слов и вопросов. Эта, казалось бы, трудная задача, легко решается при помощи сценариев JavaScript, в чем вы еще сможете убедиться.


Содержание раздела