Скриптинг в WEB.
Метки: Java | JavaScript
Среда, 13 мая 2009 г.
Просмотров: 1768
Современные Web-браузеры с каждым днем становятся все сложнее и сложнее. Сейчас трудно найти графический (не текстовый(например, старый добрый lynx)) браузер без поддержки скриптов JavaScript, Visual Basic Script, приложений Java и объектов Flash Macromedia. А все это является потенциальными «дырами» в системе безопасности.
Общие вопросы.
Если вы когда-нибудь использовали бесплатные счетчики посещений, вроде тех, которые предоставляются сайтом li.ru, то, наверняка, обратили внимание, сколько информации получает счетчик от браузера. Кроме простого подсчета посещений, счетчики могут получать следующую информацию:
- IP-адрес.
- Название браузера и его версию.
- По названию браузера и по некоторым другим параметрами определить операционную систему.
- URL-ссылки, то есть URL, с которого пользователь перешел на сайт со счетчиком.
- Разрешение экрана пользователя.
- Глубина цвета видеосистемы.
- Номера версий плагинов браузера (Java, JavaScript, VBScript).
- Размер истории, то есть узнать, сколько сайтов пользователь посетил во время Web-сессии.
Первые четыре переменные браузер обычно сам передает Web-серверу, и они устанавливаются как переменные окружения, которые общедоступны сценарию. Остальные значения есть возможность получить с помощью JavaScript/VB Script (если они включены).
Вот такой небольшой CGI-сценарий выводит все переменные окружения:
print "Content-type:text/plain\n\n" ;
print "$_: $ENV{$_}\n for (keys %ENV);
Можно сохранить этот сценарий под именем env.pl в каталоге cgi-bin Web-сервера. Если сделать его исполнимым и запустить с помощью Web-браузера (http://<cepвep>/cgibin/env.pl), то вывод будет примерно таким:
SERVERJNTAME : dhsilabs . dhsilabs
SERVER_ADMIN : rootgdhsilabs
HTTP_ACCEPT_ENCODING : gzip,deflate,compress;q=0.9
HTTP_CONNECTION : keep-alive
REQUEST_METHOD : GET
HTTP_ACCEPT: text/xml,application/xml,application/xhtml+xml, \ text/html;q=0.9,text/plain;q=0.8,video/x \ -mng, image /prig, image/j peg, imaje/gif; q=0 . 2, */* ; q=0 . 1
SCRIPT_FILENAME : /var/www/cgi-bin/env.pi
SERVER_SOFTWARE : Apache/1.3.27 (Unix)
HTTP_ACCEPT_CHARSET : ISO-8859-1,utf-8;q=0.7,*;q=0.7
QUERY_STRING :
REMOTE_PORT : 4 305 6
HTTP_USER_AGENT:Mozilla/5.0 (Xll; U; Linux 1686; en-Us; rv:1.3)\
Gecko/20030313
SERVER_SIGNATURE:<ADDRESS>Apache/1.3.27 Server at dhsilabs.dhsilabs \
Port 80</ADRESS>
SERVER_PORT : 80
HTTP_ACCEPT_LANGUAGE : en-us,end;q=0.5
REMOTE_ADDR : 127.0.0.1
HTTP_KEEP_ALIVE : 300
SERVER_PROTOCOL : HTTP/1.1
PATH : /usr/local/sbin;/usr/localbin:/usr/sbin:/bin:/usr/sbin
REQUEST_URI : /cgi-bin/env.pi
GATEWAY__INTERFACE : CGI/1.1
SERVER_ADDR : 127.0.0.1
DOCUMENT_ROOT : /var/www/htdocs
HTTP_HOST : localhost
UNIQUE_ID : QJ-c7MCoAAIAAE3sAwo
Большая часть этой информации относится к Web-серверу Apache, но, как видно, также приводится название Web-браузера, его версия и название операционной системы клиента.
Небольшое отступление.
Термины Java и JavaScript сбивают с толку многих пользователей - несмотря на похожие названия, это совсем различные вещи. Компания Netscape сделала JavaScript в 1995 г., и впервые его поддержка появилась в Netscape Navigator 2.0. Тогда этот язык назывался LiveScript (Живой Скрипт), но в это время началось бурное развитие языка Java от Sun, и компания Netscape в надежде на успех решила переименовать свой язык в JavaScript.
Microsoft тоже выпустила свой язык сценариев, и назвала его Jscript. Языки Jscript и JavaScript очень похожи друг на друга, хоть и не одинаковы, но разницу между ними заметит только очень высококвалифицированный специалист. Для рядовых пользователей и Web-дизайнеров эти два языка рассматриваются как похожие.
В попытке стандартизировать эти два языка ЕСМА (European Computer Manufactures Association) в 1997-1998 гг. создавала ECMAScript, который был представлен как кросс-платформенный и кросс-браузерный язык сценариев, сформированный на базе JavaScript и Jscript. Несмотря на то, что язык ECMAScript технически более корректен, большая часть Web-дизайнеров продолжает употреблять JavaScript.
- Защита от вирусов и червей.
- Скриптинг в WEB.