File (схема URI)

Поделись знанием:
Перейти к: навигация, поиск

Схема URI file — это схема URI, документированная в RFC 1630, RFC 1738, и RFC 3986, и предназначенная для того, чтобы адресовать файлы на локальном компьютере или в локальной сети, по их прямому пути на диске, в сетевой папке, или, в отдельных случаях, на ftp-сервере. Схема URI file зарегистрирована в реестре схем URI IANA[1], и входит в раздел «Перманентные схемы URI».





О схеме

Схема file является одной из старейших схем URI. Она была воплощена в программном обеспечении ещё на заре существования Интернета. WorldWideWeb, первый веб-браузер, созданный в 1991 г. Тимом Бернерсом-Ли, изобретателем Всемирной паутины, поддерживал схему file. Спецификация RFC 1630, в которой она была впервые документирована, была написана также Тимом Бернерсом-Ли в июне 1994, ещё до создания консорциума W3C, и является одной из старейших спецификаций Интернета.

До введения схемы ftp схема file использовалась для указания ссылок на файлы, находящиеся на ftp-серверах. Сам Тим Бернерс-Ли предложил использование схемы file в URL для ссылок на файлы, доступные по ftp-протоколу, и сам же применял такие ссылки в разделе «Список литературы» в своих публикациях[2]. Браузер Lynx, один из старейших браузеров, доживший до наших дней, до нынешних дней сохранил такую интерпретацию схемы file[3].

В отличие от большинства известных схем (например, http, nfs, sip, telnet и т. д.), схема file не является протоколом. Об этом явно указано в RFC 1738: «Особенностью этой схемы является то, что она не указывает интернет-протокол или метод доступа к файлу, поэтому её использование в сетевых протоколах между хостами ограничено»[4]. Схема file просто указывает путь к файлу в виде URL (или URI) на одном конкретном компьютере. Там же сказано, что «эта схема, в отличие от большинства других схем URL, не определяет ресурс, который общедоступен через Интернет».

Схема file поддерживается всеми популярными браузерами, во всех операционных системах, хотя и базируется на очень старом стандарте, описывающем формат URL, а собственного пока не имеет. Но из-за указанных выше особенностей её использование ограничено. Она работает в адресной строке, но в HTML-разметке веб-сайтов эта схема практически не встречается. В настоящее время разработана новая схема app, которая должна прийти на замену file. Схема app описана в рекомендации W3C от 16 мая 2013 г.[5]

Формат

URL со схемой file имеет формат[4]:

file://<host>/<path>

где host — это полное имя домена в системе, в которой доступен путь path, а path — это иерархический путь к директории, имеющий формат каталог/каталог/.../имя_файла. Если host пропущен, используется значение по умолчанию "localhost", машина, на которой обрабатывается URL. Следует отметить, что до 2005 года в стандарте было требование, такое, что если хост опускается, то соответствующий слэш или двойной слэш опускать нельзя ("file:///foo.txt" сработает, но "file://foo.txt" — нет, хотя некоторые парсеры способны были обрабатывать данный случай). RFC 3986, вышедшее в 2005 г., отменило это требование. Согласно RFC 3986, при опускании authority (в данном случае это эквивалент host) опускается также и двойной слэш (//).

Значение слэша

Символ слэша (/), в зависимости от позиции в URI, имеет разное значение.

  1. Двойной слэш (//) после схемы file: — это часть синтаксиса URL, он является обязательным при указании authority (поле host выступает в качестве authority)
  2. Слэш между host и path — это также часть синтаксиса URL, хотя он может являться составной частью path на Unix-системах, или отсутствовать, если указанный путь относительный, т.е. начинается с "." или ".."
  3. Остальные слэши отделяют названия каталогов в поле path в иерархии папок локального компьютера. В данном случае слэш — это независимый от системы способ отделения частей пути.

Другие компоненты URL

Компоненты логин (username), пароль (password) и порт (port) не используются в URL со схемой file. Но при этом могут использоваться компоненты параметры (query string) и якорь (fragment identifier)[6] самим приложением, отображающим содержимое данного file URL. Например, скрипт внутри HTML-документа может прочитать параметры, а якорь может использоваться стандартным образом для навигации по документу.

Допустимые символы и их кодирование

file URL отличается по набору символов и от традиционных URL и от путей к файлу в файловых системах. Так как пути в файловых системах могут содержать символы, зарезервированные в URL для служебных целей ('#', '%' и др.), то такие символы (ранее также и пробел (' ')) при конвертации пути в file URL %-кодируются. Но при этом, в отличие от URL, в file URL рекомендуется использовать символы иностранных алфавитов (т.е. не из таблицы US-ASCII), как есть, т.е. без %-кодирования[6]. Вызвано это тем, что %-кодированные октеты в file URL рассматриваются как байты в текущей кодовой странице пользователя, т.е. значение URL будет меняться в зависимости от локали, в которой просматривается документ[6].

Примеры

UNIX и UNIX-подобные операционные системы

2 примера на Unix, указывающие на один и тот же файл /etc/fstab:

file://localhost/etc/fstab
file:///etc/fstab

Пример ссылки на файл rfc959.txt, который находится на ftp-сервере nnsc.nsf.net[Прим. 1]:

file://nnsc.nsf.net/rfc/rfc959.txt

Mac OS

2 примера на Mac OS, указывающие на один и тот же файл /var/log/system.log:

file://localhost/var/log/system.log
file:///var/log/system.log

Windows

Примеры путей, поддерживаемых приложениями Windows, указывающие на файл c:\WINDOWS\clock.avi:

file://localhost/c|/WINDOWS/clock.avi
file:///c|/WINDOWS/clock.avi
file://localhost/c:/WINDOWS/clock.avi
file:///c:/WINDOWS/clock.avi

Пример пути к файлу start.swf, расположенному в сетевой папке products на компьютере с сетевым именем applib[7]:

file://applib/products/a-b/abc_9/4148.920a/media/start.swf

Пример file URI с %-кодированными символами и с символом Unicode[7] (в Internet Explorer 6-й и 7-й версии пример с %20 может не работать[8]):

file:///C:/Documents%20and%20Settings/davris/FileSchemeURIs.doc
file:///C:/exampleㄓ.txt

Схема file и браузеры

Браузер Поддержка схемы file (localhost) Пустой host (file:///<tt>) Сетевой host Буква диска в пути (C:)[Прим. т. 1] Обзор папок  %-кодированные символы file-ссылки в html
Google Chrome Да Да WINS Да Да Да Да
Internet Explorer Да Да WINS Да Нет Да Да
Konqueror Да Да  ? - Да Да Да
Lynx Да Да FTP Да Да Да Да
Mozilla Firefox Да Да WINS[Прим. т. 2] Да Да Да Да
Opera Да Да WINS Да Да Да Да
Safari Да  ?  ? - Нет  ?  ?
Яндекс.Браузер Да Да WINS Да Да Да Да
Примечания к таблице
  1. Только для браузеров, поддерживающих Windows
  2. Обыкновенно заданный путь в виде file://hostname/share/path/to/a/file в Mozilla Firefox не работает, но можно задать его как file://///hostname/share/path/to/a/file. В 2001 г. mozillа был заведен баг по этому поводу, несколько лет шло обсуждение, но его так и не стали исправлять (не нашли разумного решения)[9]

Схема file в Windows

Схема URI file начала поддерживаться в Windows изначально, т.е. с появлением поддержки URI[Прим. 2] вообще, а конкретно — с выходом обозревателя Internet Explorer 1[10]. Первая версия Internet Explorer разрабатывалась в 1995 г., когда стандарта URL ещё не было, и схему file можно было трактовать по-разному, что и произошло с браузером. Разные его модули по-разному обрабатывали схему file. После переработки эта ситуация была устранена. Был создан shlwapi.dll, в который поместили весь код для работы с URL. В ходе переделки были согласованы две формы схемы file: одна по стандарту URL, другая — старая форма, пришедшая из времен DOS. Сотрудники Microsoft называли её legacy file URL (устаревший file URL). Примеры устаревших file URL:

Путь к файлу:         c:\windows\My Documents 100%20\foo.txt 
Устаревший file URL:  file://c:\windows\My Documents 100%20\foo.txt 
Стандартный file URL: file:///c:/windows/My%20Documents%20100%2520/foo.txt

Путь к файлу:         \\server\share\My Documents 100%20\foo.txt 
Устаревший file URL:  file://\\server\share\My Documents 100%20\foo.txt
Стандартный file URL: file://server/share/My%20Documents%20100%2520/foo.txt 

Новая dll умеет правильно обрабатывать и новые, и старые file URL, поэтому её функции PathCreateFromUrl() и UrlCreateFromPath() рекомендуется использовать для конвертации между путями Windows и file URL[6][11].

Кроме данных функций, была создана функция CreateURLMoniker() в urlmon.dll (начиная с Internet Explorer 3), предназначенная для того, чтобы сконвертировать строковый URI в объект, с помощью которого можно получить данные, адресованные данным URI (моникер). Но и эта функция вызывала некоторые проблемы с конвертацией file URI[11], в результате чего была добавлена и рекомендована для использования новая функция CreateURLMonikerEx() (начиная с Internet Explorer 5.5), в которой все эти проблемы были исправлены. С выходом Internet Explorer 7 была добавлена ещё одна функция CreateURLMonikerEx2(), которая поддерживает относительные пути.

Проблемы безопасности

С появлением и распространением в браузерах поддержки скриптовых языков, таких, как JavaScript, был обнаружен ряд уязвимостей, связанных с использованием схемы file. В связи с этим разработчики браузеров ввели ряд встроенных ограничений в браузерах на использование file URL.

Основные уязвимости браузеров, связанные с file URI

Ссылки со схемой file в документах HTML, загруженных по протоколу HTTP, не работают практически во всех популярных браузерах: Internet Explorer(начиная с версии 6 SP1)[12][Прим. 3], Mozilla Firefox[14][15], Chromium[16] и Google Chrome[17], SafariК:Википедия:Статьи без источников (тип: не указан)[источник не указан 3813 дней], OperaК:Википедия:Статьи без источников (тип: не указан)[источник не указан 3813 дней]. При нажатии на такие ссылки не происходит ни навигации, ни показа сообщения об ошибке, хотя сообщение об ошибке может быть записано в консоли ошибок. Также контент по ссылке file URL не загружается во фреймы документа HTML, загруженного по HTTP URL. Такая политика безопасности была введена в связи с тем, что такие ссылки вызывают ряд уязвимостей:

  • HTML-документ, размещенный на сайте злоумышленника, может подгрузить файлы на компьютере пользователя при помощи ссылок file URL, и затем отправить их на сервер, находящийся под контролем этого злоумышленника. Злоумышленник получает доступ к конфиденциальным данным пользователя;
  • Многие браузеры и плагины к ним держат свои временные файлы и кэш в предсказуемых местах на диске. Атакующий может вначале разместить файл HTML в одном из этих мест во время обычной работы браузера (злоумышленник на контролируемом сайте может попросить сохранить веб-страницу на диск, или прислать её в архиве на электронную почту), и затем попробовать открыть его, вызвав через специально подготовленный file URL. HTML-документ, открытый локально (через file URL), имеет больше привилегий, чем удалённый, и может как получить доступ к конфиденциальным данным пользователя, так и совершать другие нежелательные действия. Этот метод атаки также называют "file-URL-to-file-URL scripting"[18]. Кроме того, пользователь может сам открыть вредный html-документ локально у себя на компьютере.
  • Локально открытый html-файл может загрузить удалённую веб-страницу в iframe (так как локальные файлы на компьютере не подпадают под Правило ограничения домена, действующее только для сайтов), например, сайт электронной почты, где пользователь уже залогинен, и получить таким образом доступ к конфиденциальным данным пользователя, находящимся в интернете.

Для борьбы со второй уязвимостью была также введена политика под названием «Правило ограничения домена» (same origin policy), аналогичная одноимённой политике, введённой ранее для сайтов http-зоны. Mozilla Firefox, который ввёл эту политику в версии браузера 3 (движок Gecko 1.9) в 2007 г., был в этом одним из первых (на обсуждение и реализацию этой политики у разработчиков Firefox ушло 3 года[19]). Согласно этому правилу, файл может читать другой файл, только если родительская директория исходного файла является директорией-предком для целевого файла[20]. Microsoft ранее поступил жёстче и вообще отключил исполнение Javascript при открытии любых локальных файлов, начиная с Internet Explorer 6 в Windows XP SP2, добавив пользователям возможность выполнить сценарий выбором специальной команды во всплывающем меню. Safari 3.2 не даёт пользователю возможность открыть локальные file URL из каких-либо других источников, кроме как из адресной строки. Opera 9.6 не позволяет локальным html-страницам загружать удалённый контент (но это не защищает от возможности доступа злоумышленника к данным на компьютере). Chromium (и зависящий от него Google Chrome) реализовал политику, аналогичную политике Opera[21] и взял также на рассмотрение политику Firefox, но позже реализовал ещё более жёсткую политику[22], запретив обращения к file URL для скриптов в локальных веб-страницах вообще (позже было решено ослабить эту политику).

В результате ввода таких ограничений появилось много жалоб, так как это ломало работу локальных сайтов и веб-справочников, которые широко применяются во многих корпоративных и локальных сетях, в дистрибутивах на CD, в приложениях к электронной почте, а также используются веб-разработчиками для отладки сайтов. Например, в Mozilla по этому поводу было заведено несколько десятков багов-дубликатов[15]. Поэтому в браузерах была поддержана возможность обхода, отключения, или конфигурирования этой политики, а также появились статьи, подсказывающие, как это сделать. Так, в Internet Explorer эта политика настраивается параметром «Websites in less privileged web content zone can navigate into this zone» " в настройках зоны «My computer» или другой. Также этот запрет обходится добавлением веб-сайтов, не вызывающих никаких опасений, в зону "Надежные узлы" Internet ExplorerК:Википедия:Статьи без источников (тип: не указан)[источник не указан 3813 дней]. В Mozilla Firefox этот запрет обходится с помощью расширений LocalLink, Local Filesystem Links, IE Tab; или специальной настройкой политики безопасности (для группы сайтов создаётся специальная зона со своими специфическими настройками безопасности)[14]. В Google Chrome начиная с версии 7 этот запрет можно обойти, запустив браузер с флагом <tt>--allow-file-access-from-files, или используя расширение LocalLinks. В Chromium также, как следствие многочисленных жалоб, решили ослабить политику «Правило ограничения домена» для file URL[23].

Ограничения политики безопасности в браузерах

Основные ограничения политики безопасности в браузерах отражены в таблице[Прим.т.2. 1].

Описание теста MSIE6[Прим.т.2. 2] MSIE7[Прим.т.2. 3] MSIE8[Прим.т.2. 4] FF2[Прим.т.2. 5] FF3[Прим.т.2. 6] Safari[Прим.т.2. 7] Opera[Прим.т.2. 8] Chrome[Прим.т.2. 9]
Имеют ли локальные HTML доступ к несвязанным локальным файлам через DOM? Да Да Да Да Нет Нет Да Нет
Имеют ли локальные HTML доступ к несвязанным локальным файлам через XMLHttpRequest? Нет Нет Нет Да Нет Нет Да Нет
Имеют ли локальные HTML доступ к сайтам в Интернет через XMLHttpRequest? Да Да Да Нет Нет Нет Нет Нет
Работает ли document.cookie с file URL? Да Да Да Да Да Да Да Нет
Разрешается ли загружать тег <IMG> с file URI? Да Да Да Нет Нет Нет Нет Нет
Разрешается ли загружать тег <SCRIPT> с file URI? Да Да Да Нет Нет Нет Нет Нет
Разрешается ли загружать тег <IFRAME> с file URI? Да Да Да Нет Нет Нет Нет Нет
Разрешается ли загружать тег <EMBED> с file URI? Нет Нет Нет Нет Нет Нет Нет Нет
Разрешается ли загружать тег <APPLET> с file URI? Да Да Да Нет Нет Да Нет Да
Можно ли загружать стили (stylesheet) через file URI? Да Да Да Нет Нет Нет Нет Нет
Разрешены ли редиректы (Location redirection) через file URI? Нет Нет Нет Нет Нет Нет Нет Нет
Разрешены ли редиректы (Refresh redirection) через file URI? Нет Нет Нет Нет Нет Нет Нет Нет
Примечания к таблице
  1. Данные таблицы, для всех браузеров, если это не указано отдельно, взяты из работы Михала Залевски «Browser Security Handbook»[24], основной материал которой был написан ещё в 2008 году[25], и могут быть неактуальны для более новых версий браузеров
  2. MSIE6 - Microsoft Internet Explorer 6 (v6.0.2900.5512)
  3. MSIE7 - Microsoft Internet Explorer 7 (v7.0.5730.11)
  4. MSIE8 - Microsoft Internet Explorer 8 (v8.0.6001.18702)
  5. FF2 - Mozilla Firefox 2 (v2.0.0.18)
  6. FF3 - Mozilla Firefox 3 (v3.6.8)
  7. Safari - Apple Safari v4.0
  8. Opera - Opera v9.62
  9. Chrome - Google Chrome v7.0.503.0

Атака XXE

Атака XXE (англ. Xml eXternal Entity) — одна из известнейших уязвимостей в Интернете. Этот класс уязвимостей зарегистрирован в крупнейших каталогах уязвимостей: Common Weakness Enumeration[26] и CAPEC[27]. Суть атаки в следующем. Есть сервисы, поддерживающие протоколы SOAP и XML-RPC, которые принимают входные данные в виде XML-документа. Стандарт XML-документа поддерживает включение секции DTD, а секции DTD, в свою очередь, могут подключать к документу дополнительные компоненты, так называемые внешние сущности (англ. external entity)[28]. Внешние сущности являются отдельными файлами и задаются с помощью ключевого слова SYSTEM и URI. Если XML-парсер невалидирующий, он может просто загрузить внешнюю сущность и подключить к содержимому XML-документа. Злоумышленник может подставить в URI внешней сущности file URI, указывающий на аппаратное устройство ЭВМ, или на локальный файл в системе. Сервер попытается прочитать файл по указанному URI и включить его содержимое в XML. При использовании такого механизма возможны следующие виды атак[29]:

  • DoS-атака (отказ в обслуживании) сервера, посредством обращения к устройству системы, такому, как /dev/urandom или ;
  • получение несанкционированного доступа к закрытым файлам сервера, например, /etc/passwd или c:/winnt/win.ini;
  • сканирование TCP-портов (даже в обход фаервола);
  • DoS-атака других систем (если парсер позволяет устанавливать TCP-соединения в другие системы)
  • кража материалов NTLM-аутентификации, инициированная через UNC-обращение к системе, находящейся под контролем злоумышленника;
  • сценарий «судный день»: широко развернутое и имеющее большое количество подключений серверное приложение, подверженное этой уязвимости, может использоваться для DDoS-атаки (распределённый отказ от обслуживания).

Уязвимость XXE в сообществе xml.org (сайт некоммерческой организации OWASP) начали обсуждать ещё с 2001 года[30], но это были лишь теоретические размышления о возможности атаки такого вида. Первый, кто обратил внимание общественности на эту уязвимость, был Грегори Стейк (англ. Gregory Steuck)[31]. В 2002 году он отправил security advisory (инструкция по безопасности) на www.securityfocus.com[29], в котором подробно описал уязвимость и дал ей название атака XXE (англ. XXE Attack).

Атаке XXE были подвержены многие продукты. Во всех крупнейших базах данных уязвимостей программного обеспечения можно найти программные продукты, уязвимые к атаке XXE: в National Vulnerability Database[32], в Common Vulnerabilities and Exposures[33], в Open Source Vulnerability Database[34]. Уязвимость к «атаке XXE» была обнаружена в таких известных продуктах, как JDK и JRE (6-я версия, 3-е обновление)[33][35], WebKit и сделанный на его основе браузер Safari (3-я версия)[36][37], Spring Framework[38], CakePHP[39], Adobe Reader (7-я версия)[40], Zend Framework[41], Squiz[42] и др.

Стандартизация и спецификации

Схема URI file впервые была описана в июне 1994 г. в информационном RFC 1630 («Universal Resource Identifiers in WWW»). В декабре того же года она была стандартизирована в RFC 1738 (Uniform Resource Locators (URL)). RFC 1738 описывает общий формат URL и на данный момент уже является устаревшим, за исключением двух секций, в которых описываются схемы file и ftp. Новый RFC 3986 (Uniform Resource Identifier (URI): Generic Syntax), вышедший в 2005, вобрал в себя RFC 1738, внёс небольшие изменения, но он не описывал отдельные схемы. К тому времени почти все схемы из раздела перманентных получили свой собственный отдельный стандарт. Старый RFC 1738 лишь утверждал формат схемы, но не определял правил по применению этой схемы и конвертации локального пути в URI и обратно. Назревала необходимость стандартизировать схему file, а также ряд других нестандартизированных схем.

В 2004 г. Пол Хоффман, являющийся участником IETF ещё с ранних 1990-х, начал процесс стандартизации схемы file. В течение июня он написал отдельные спецификации для схем file, ftp, gopher, news и nntp, prospero и telnet, и 17 июня 2004 они были опубликованы на сайте ietf.org, а 19 июня он объявил об этом в списке рассылки[43]. Первая ревизия стандарта схемы file имела название «The file URI Scheme»[44]. 19 июня Пол Хоффман объявил о Началось активное обсуждение черновика. Сообщество IETF высказало много замечаний, и вскоре вышла вторая ревизия[45], потом третья[46] и четвертая[47]. Но консенсус так и не был достигнут. Для продолжения работы над стандартом Майк Браун создал специальный вики-сайт offset.skew.org/wiki/URI/File_scheme, где некоторое время велась работа по сбору информации, касающейся схемы file. Но вскоре эта деятельность затухла, а стандарт так и не был принят.

В 2013 г. Мэтью Кервин делает новую попытку стандартизировать схему file. В июне 2013 была опубликована первая ревизия черновика[48], началось обсуждение черновика, и в течение июня-сентября вышло ещё 8 ревизий. Последняя (№8, т.е. девятая[Прим. 4]) ревизия черновика была опубликована 18 сентября 2013[49]

Напишите отзыв о статье "File (схема URI)"

Примечания

Комментарии
  1. Этот пример работает только в браузере Lynx
  2. Термин URI появился позже, на тот момент его прототипом был URL, здесь и далее в статье под URI может подразумеваться URL
  3. Ссылки со схемой file с нелокальным хостом (т.е. URL, указывающие на UNC-путь, например, file://dmitryt/public/readme.txt), работали в Internet Explorer вплоть до 9-й версии, но в обновлении до версии 9.02, вышедшем в августе 2011 года, эта возможность была отключена [13]
  4. Черновики стандартов IETF нумеруются с 0
Источники
  1. [www.iana.org/assignments/uri-schemes/uri-schemes.xhtml Uniform Resource Identifier (URI) Schemes] (англ.) (iana.org)
  2. Tim Berners-Lee, et. al. [www.slac.stanford.edu/cgi-wrap/getdoc/slac-pub-7815.pdf "World-Wide Web: an Information Infrastructure for High-Energy Physics", Proceedings of the Second Workshop on Artificial Intelligence and Software Engineering for High energy Physics, La Londe, France, January 1992] (англ.) // New Computing Techniques in Physics Research. — Singapore: World Scientific. — P. 157-164.
  3. [lynx.isc.org/lynx2.8.7/lynx2-8-7/lynx_help/lynx_url_support.html#file_url URL Schemes Supported in Lynx.The file URL.] (англ.). Lynx User's Guide. lynx.isc.org (July 5, 2009). Проверено 9 октября 2013.
  4. 1 2 T. Berners-Lee, L. Masinter, M. McCahill. [tools.ietf.org/html/rfc1738#section-3.10 3.10 Files / Uniform Resource Locators (URL)] (англ.). Request for Comments: 1738 14. IETF (December 1994). Проверено 6 октября 2013.
  5. Marcos Cáceres. [www.w3.org/TR/2013/WD-app-uri-20130516/ The app: URI scheme] (англ.). W3C (16 May 2013). Проверено 8 октября 2013.
  6. 1 2 3 4 Dave Risney. [blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx File URIs in Windows] (англ.). MSDN (December 6, 2006). Проверено 16 октября 2013.
  7. 1 2 Risney, Dave [blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx File URIs in Windows] (англ.). IEBlog. Microsoft Corporation (2013). Проверено 7 августа 2013.
  8. [support.microsoft.com/default.aspx?scid=kb;en-us;896204 You may receive an error message when you click a hyperlink that references a file on your local computer or on your local network in Internet Explorer] (англ.). Microsoft (October 26, 2007). Проверено 20 октября 2013.
  9. [bugzilla.mozilla.org/show_bug.cgi?id=70871 Bug 70871 - file://hostname/dir/dir/filename - hostname not implemented]. (2001-03-04). Mozilla
  10. Zeke Odins-Lucas. [blogs.msdn.com/b/freeassociations/archive/2005/05/19/420059.aspx The Bizarre and Unhappy Story of 'file:' URLs] (англ.). MSDN (19 May 2005). Проверено 15 октября 2013.
  11. 1 2 Dave Risney. [blogs.msdn.com/b/ie/archive/2006/09/13/752347.aspx CreateURLMoniker Considered Harmful] (англ.). MSDN (September 14, 2006). Проверено 16 октября 2013.
  12. [msdn.microsoft.com/en-us/library/Aa767731.aspx file Protocol] (англ.). MSDN. Проверено 20 октября 2013.
  13. Eric Law. [blogs.msdn.com/b/ieinternals/archive/2011/08/12/internet-explorer-9.0.2-update-changes-file-protocol-and-cookie-naming.aspx Internet Explorer 9.0.2 Update] (англ.). MSDN (12 Aug 2011). Проверено 19 октября 2013.
  14. 1 2 [kb.mozillazine.org/Links_to_local_pages_don%27t_work Links to local pages do not work] (англ.). MozillaZine Knowledge Base. Mozilla. Проверено 19 октября 2013.
  15. 1 2 [bugzilla.mozilla.org/show_bug.cgi?id=122022 Bug 122022 - (file://) [ISSUE] file:// URLs in a http | https page do not work (clicking does nothing, do not auto-load, etc.)]. Bugzilla@Mozilla. Mozilla (26 января 2002). Проверено 20 октября 2013.
  16. A. Barth, C. Jackson, C. Reis, and Google Chrome Team [seclab.stanford.edu/websec/chromium/chromium-security-architecture.pdf The Security Architecture of the Chromium Browser] (англ.) : Technical report. — Stanford University, 2008. — P. 6.
  17. Šilić, M. ; Krolo, J. ; Delac, G. [www.fer.unizg.hr/_download/repository/MarinSilic.pdf Security Vulnerabilities in Modern Web Browser Architecture] (англ.) // MIPRO, 2010 Proceedings of the 33rd International Convention. — Opatija, Croatia, 2010. — P. 1240 - 1245. — ISBN 978-1-4244-7763-0.
  18. [cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1839 CVE-2009-1839] (англ.). Common Vulnerabilities and Exposures (29 May 2009). Проверено 19 октября 2013.
  19. [bugzilla.mozilla.org/show_bug.cgi?id=230606 Bug 230606 - Tighten the same-origin policy for local files (file: URLs, trusted, security)]. Bugzilla@Mozilla. Mozilla (10 января 2004). Проверено 20 октября 2013.
  20. [developer.mozilla.org/en-US/docs/Same-origin_policy_for_file:_URIs Same-origin policy for file: URIs] (англ.). Mozilla Developer Network. Проверено 20 октября 2013.
  21. Adam Barth. [blog.chromium.org/2008/12/security-in-depth-local-web-pages.html Security in Depth: Local Web Pages] (англ.). Chromium (December 04, 2008). Проверено 20 октября 2013.
  22. [code.google.com/p/chromium/issues/detail?id=4197 Issue 4197: Further restrict access of file URL] (англ.). Google. Проверено 20 октября 2013.
  23. [code.google.com/p/chromium/issues/detail?id=47416 Issue 47416: Allow a directory tree to be treated as a single origin (loosen file: URL restrictions)] (англ.). Google. Проверено 20 октября 2013.
  24. Michal Zalewski. [code.google.com/p/browsersec/wiki/Part2 Browser Security Handbook, part 2] (англ.). Google (December 10, 2008). Проверено 20 октября 2013.
  25. Michal Zalewski. [googleonlinesecurity.blogspot.ru/2008/12/announcing-browser-security-handbook.html Announcing "Browser Security Handbook"] (англ.). Google Online Security Blog (December 10, 2008). Проверено 20 октября 2013.
  26. [cwe.mitre.org/data/definitions/611.html CWE-611: Improper Restriction of XML External Entity Reference ('XXE')] (англ.). Проверено 7 ноября 2013.
  27. [capec.mitre.org/data/definitions/201.html CAPEC-201: External Entity Attack] (англ.). Проверено 7 ноября 2013.
  28. Эллиот Расти Гарольд, В. Скотт Минс. XML. Справочник = XML in a Nutshell, Second Edition / Пер. с англ.. — СПб: Символ-Плюс, 2002. — С. 76-80. — 576 с. — ISBN 5-93286-025-1.
  29. 1 2 Steuck, Gregory [www.securityfocus.com/archive/1/297714/30/0/threaded XXE (Xml eXternal Entity) attack] (англ.). www.securityfocus.com (Oct 29 2002). Проверено 25 октября 2013.
  30. Wilson, John [lists.xml.org/archives/xml-dev/200101/msg00016.html Dereferencing Namespace URIs considered harmful] (англ.). Список рассылки XML-DEV (01 Jan 2001). Проверено 12 октября 2013.
  31. Sabin, Miles [lists.xml.org/archives/xml-dev/200210/msg01735.html Seen on BugTraq: XXE (Xml eXternal Entity) attack] (англ.). Список рассылки XML-DEV (30 Oct 2002). Проверено 12 октября 2013.
  32. [web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2008-0628 Vulnerability Summary for CVE-2008-0628] ("en"). Проверено 7 ноября 2013.
  33. 1 2 [cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0628 CVE-2008-0628] (англ.). Проверено 7 ноября 2013.
  34. [www.osvdb.org/show/osvdb/68033 68033 : Splunk XML Parser XML External Entity (XXE) Unspecified Remote Privilege Escalation] (англ.). Проверено 7 ноября 2013.
  35. Chris Evans. [scary.beasts.org/security/CESA-2007-002.html Sun JDK6 breaks XXE attack protection] (англ.). scary.beasts.org (2007). Проверено 7 ноября 2013.
  36. Дмитрий Докучаев [www.xakep.ru/magazine/xa/127/044/1.asp Обзор эксплойтов] // Хакер. — 2009. — Вып. 127. — № 07. — С. 44-50.
  37. [www.securityfocus.com/archive/1/504177 Apple Safari local file theft vulnerability] (англ.). www.securityfocus.com (Jun 09 2009). Проверено 7 ноября 2013.
  38. [www.securityfocus.com/archive/1/528177 CVE-2013-4152 XML External Entity (XXE) injection in Spring Framework] (англ.). www.securityfocus.com (Aug 22 2013). Проверено 7 ноября 2013.
  39. [www.securityfocus.com/archive/1/523549 CakePHP 2.x-2.2.0-RC2 XXE Injection] (англ.). www.securityfocus.com (Jul 16 2012). Проверено 7 ноября 2013.
  40. Sverre H. Huseby. [www.securityfocus.com/archive/1/402468 Adobe Reader 7: XML External Entity (XXE) Attack] (англ.). www.securityfocus.com (Jun 16 2005). Проверено 7 ноября 2013.
  41. [www.securityfocus.com/archive/1/523301 SEC Consult SA-20120626-0 :: Zend Framework - Local file disclosure via XXE injection] (англ.). www.securityfocus.com (Jun 26 2012). Проверено 7 ноября 2013.
  42. [www.securityfocus.com/archive/1/523164 Squiz CMS Multiple Vulnerabilities - Security Advisory - SOS-12-007] (англ.). www.securityfocus.com (Jun 18 2012). Проверено 7 ноября 2013.
  43. Hoffman, Paul [lists.w3.org/Archives/Public/uri/2004Aug/0057.html Historic scheme drafts] (англ.). Список рассылки uri@w3.org (19 Aug 2004). Проверено 26 сентября 2013.
  44. P. Hoffman. [tools.ietf.org/html/draft-hoffman-file-uri-00 The file URI Scheme] (англ.). IETF (August 17, 2004). Проверено 6 октября 2013.
  45. P. Hoffman. [tools.ietf.org/html/draft-hoffman-file-uri-01 The file URI Scheme] (англ.). IETF (September 18, 2004). Проверено 6 октября 2013.
  46. P. Hoffman. [tools.ietf.org/html/draft-hoffman-file-uri-02 The file URI Scheme] (англ.). IETF (November 30, 2004). Проверено 6 октября 2013.
  47. P. Hoffman. [tools.ietf.org/html/draft-hoffman-file-uri-03 The file URI Scheme] (англ.). IETF (January 2005). Проверено 6 октября 2013.
  48. M. Kerwin. [tools.ietf.org/html/draft-kerwin-file-scheme-00 The file URI Scheme] (англ.). IETF (June 20, 2013). Проверено 6 октября 2013.
  49. M. Kerwin. [tools.ietf.org/html/draft-kerwin-file-scheme-08 The file URI Scheme] (англ.). IETF (September 18, 2013). Проверено 6 октября 2013.

Ссылки

  • [offset.skew.org/wiki/URI/File_scheme offset.skew.org] - вики-сайт для сбора информации о схеме file и координации работ по стандартизации схемы file
  • [blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx "File URIs in Windows" на сайте blogs.msdn.com] - статья об использовании URI со схемой file в Windows API
  • [msdn.microsoft.com/en-us/library/windows/desktop/ff819129%28v=vs.85%29.aspx "URL Formatting Requirements" на сайте msdn.microsoft.com] - о формате URI со схемой file в Windows 7
  • [blogs.oracle.com/alanb/entry/file_uris "file paths and file URIs" на сайте blogs.oracle.com] — статья об использовании URI со схемой file на языке Java
  • [search.cpan.org/dist/URI/URI/file.pm "URI::file" на сайте cpan.org] - использование URI со схемой file на языке Perl

Отрывок, характеризующий File (схема URI)

Князь Андрей невольно улыбнулся, взглянув на штабс капитана Тушина. Молча и улыбаясь, Тушин, переступая с босой ноги на ногу, вопросительно глядел большими, умными и добрыми глазами то на князя Андрея, то на штаб офицера.
– Солдаты говорят: разумшись ловчее, – сказал капитан Тушин, улыбаясь и робея, видимо, желая из своего неловкого положения перейти в шутливый тон.
Но еще он не договорил, как почувствовал, что шутка его не принята и не вышла. Он смутился.
– Извольте отправляться, – сказал штаб офицер, стараясь удержать серьезность.
Князь Андрей еще раз взглянул на фигурку артиллериста. В ней было что то особенное, совершенно не военное, несколько комическое, но чрезвычайно привлекательное.
Штаб офицер и князь Андрей сели на лошадей и поехали дальше.
Выехав за деревню, беспрестанно обгоняя и встречая идущих солдат, офицеров разных команд, они увидали налево краснеющие свежею, вновь вскопанною глиною строящиеся укрепления. Несколько баталионов солдат в одних рубахах, несмотря на холодный ветер, как белые муравьи, копошились на этих укреплениях; из за вала невидимо кем беспрестанно выкидывались лопаты красной глины. Они подъехали к укреплению, осмотрели его и поехали дальше. За самым укреплением наткнулись они на несколько десятков солдат, беспрестанно переменяющихся, сбегающих с укрепления. Они должны были зажать нос и тронуть лошадей рысью, чтобы выехать из этой отравленной атмосферы.
– Voila l'agrement des camps, monsieur le prince, [Вот удовольствие лагеря, князь,] – сказал дежурный штаб офицер.
Они выехали на противоположную гору. С этой горы уже видны были французы. Князь Андрей остановился и начал рассматривать.
– Вот тут наша батарея стоит, – сказал штаб офицер, указывая на самый высокий пункт, – того самого чудака, что без сапог сидел; оттуда всё видно: поедемте, князь.
– Покорно благодарю, я теперь один проеду, – сказал князь Андрей, желая избавиться от штаб офицера, – не беспокойтесь, пожалуйста.
Штаб офицер отстал, и князь Андрей поехал один.
Чем далее подвигался он вперед, ближе к неприятелю, тем порядочнее и веселее становился вид войск. Самый сильный беспорядок и уныние были в том обозе перед Цнаймом, который объезжал утром князь Андрей и который был в десяти верстах от французов. В Грунте тоже чувствовалась некоторая тревога и страх чего то. Но чем ближе подъезжал князь Андрей к цепи французов, тем самоувереннее становился вид наших войск. Выстроенные в ряд, стояли в шинелях солдаты, и фельдфебель и ротный рассчитывали людей, тыкая пальцем в грудь крайнему по отделению солдату и приказывая ему поднимать руку; рассыпанные по всему пространству, солдаты тащили дрова и хворост и строили балаганчики, весело смеясь и переговариваясь; у костров сидели одетые и голые, суша рубахи, подвертки или починивая сапоги и шинели, толпились около котлов и кашеваров. В одной роте обед был готов, и солдаты с жадными лицами смотрели на дымившиеся котлы и ждали пробы, которую в деревянной чашке подносил каптенармус офицеру, сидевшему на бревне против своего балагана. В другой, более счастливой роте, так как не у всех была водка, солдаты, толпясь, стояли около рябого широкоплечего фельдфебеля, который, нагибая бочонок, лил в подставляемые поочередно крышки манерок. Солдаты с набожными лицами подносили ко рту манерки, опрокидывали их и, полоща рот и утираясь рукавами шинелей, с повеселевшими лицами отходили от фельдфебеля. Все лица были такие спокойные, как будто всё происходило не в виду неприятеля, перед делом, где должна была остаться на месте, по крайней мере, половина отряда, а как будто где нибудь на родине в ожидании спокойной стоянки. Проехав егерский полк, в рядах киевских гренадеров, молодцоватых людей, занятых теми же мирными делами, князь Андрей недалеко от высокого, отличавшегося от других балагана полкового командира, наехал на фронт взвода гренадер, перед которыми лежал обнаженный человек. Двое солдат держали его, а двое взмахивали гибкие прутья и мерно ударяли по обнаженной спине. Наказываемый неестественно кричал. Толстый майор ходил перед фронтом и, не переставая и не обращая внимания на крик, говорил:
– Солдату позорно красть, солдат должен быть честен, благороден и храбр; а коли у своего брата украл, так в нем чести нет; это мерзавец. Еще, еще!
И всё слышались гибкие удары и отчаянный, но притворный крик.
– Еще, еще, – приговаривал майор.
Молодой офицер, с выражением недоумения и страдания в лице, отошел от наказываемого, оглядываясь вопросительно на проезжавшего адъютанта.
Князь Андрей, выехав в переднюю линию, поехал по фронту. Цепь наша и неприятельская стояли на левом и на правом фланге далеко друг от друга, но в средине, в том месте, где утром проезжали парламентеры, цепи сошлись так близко, что могли видеть лица друг друга и переговариваться между собой. Кроме солдат, занимавших цепь в этом месте, с той и с другой стороны стояло много любопытных, которые, посмеиваясь, разглядывали странных и чуждых для них неприятелей.
С раннего утра, несмотря на запрещение подходить к цепи, начальники не могли отбиться от любопытных. Солдаты, стоявшие в цепи, как люди, показывающие что нибудь редкое, уж не смотрели на французов, а делали свои наблюдения над приходящими и, скучая, дожидались смены. Князь Андрей остановился рассматривать французов.
– Глянь ка, глянь, – говорил один солдат товарищу, указывая на русского мушкатера солдата, который с офицером подошел к цепи и что то часто и горячо говорил с французским гренадером. – Вишь, лопочет как ловко! Аж хранцуз то за ним не поспевает. Ну ка ты, Сидоров!
– Погоди, послушай. Ишь, ловко! – отвечал Сидоров, считавшийся мастером говорить по французски.
Солдат, на которого указывали смеявшиеся, был Долохов. Князь Андрей узнал его и прислушался к его разговору. Долохов, вместе с своим ротным, пришел в цепь с левого фланга, на котором стоял их полк.
– Ну, еще, еще! – подстрекал ротный командир, нагибаясь вперед и стараясь не проронить ни одного непонятного для него слова. – Пожалуйста, почаще. Что он?
Долохов не отвечал ротному; он был вовлечен в горячий спор с французским гренадером. Они говорили, как и должно было быть, о кампании. Француз доказывал, смешивая австрийцев с русскими, что русские сдались и бежали от самого Ульма; Долохов доказывал, что русские не сдавались, а били французов.
– Здесь велят прогнать вас и прогоним, – говорил Долохов.
– Только старайтесь, чтобы вас не забрали со всеми вашими казаками, – сказал гренадер француз.
Зрители и слушатели французы засмеялись.
– Вас заставят плясать, как при Суворове вы плясали (on vous fera danser [вас заставят плясать]), – сказал Долохов.
– Qu'est ce qu'il chante? [Что он там поет?] – сказал один француз.
– De l'histoire ancienne, [Древняя история,] – сказал другой, догадавшись, что дело шло о прежних войнах. – L'Empereur va lui faire voir a votre Souvara, comme aux autres… [Император покажет вашему Сувара, как и другим…]
– Бонапарте… – начал было Долохов, но француз перебил его.
– Нет Бонапарте. Есть император! Sacre nom… [Чорт возьми…] – сердито крикнул он.
– Чорт его дери вашего императора!
И Долохов по русски, грубо, по солдатски обругался и, вскинув ружье, отошел прочь.
– Пойдемте, Иван Лукич, – сказал он ротному.
– Вот так по хранцузски, – заговорили солдаты в цепи. – Ну ка ты, Сидоров!
Сидоров подмигнул и, обращаясь к французам, начал часто, часто лепетать непонятные слова:
– Кари, мала, тафа, сафи, мутер, каска, – лопотал он, стараясь придавать выразительные интонации своему голосу.
– Го, го, го! ха ха, ха, ха! Ух! Ух! – раздался между солдатами грохот такого здорового и веселого хохота, невольно через цепь сообщившегося и французам, что после этого нужно было, казалось, разрядить ружья, взорвать заряды и разойтись поскорее всем по домам.
Но ружья остались заряжены, бойницы в домах и укреплениях так же грозно смотрели вперед и так же, как прежде, остались друг против друга обращенные, снятые с передков пушки.


Объехав всю линию войск от правого до левого фланга, князь Андрей поднялся на ту батарею, с которой, по словам штаб офицера, всё поле было видно. Здесь он слез с лошади и остановился у крайнего из четырех снятых с передков орудий. Впереди орудий ходил часовой артиллерист, вытянувшийся было перед офицером, но по сделанному ему знаку возобновивший свое равномерное, скучливое хождение. Сзади орудий стояли передки, еще сзади коновязь и костры артиллеристов. Налево, недалеко от крайнего орудия, был новый плетеный шалашик, из которого слышались оживленные офицерские голоса.
Действительно, с батареи открывался вид почти всего расположения русских войск и большей части неприятеля. Прямо против батареи, на горизонте противоположного бугра, виднелась деревня Шенграбен; левее и правее можно было различить в трех местах, среди дыма их костров, массы французских войск, которых, очевидно, большая часть находилась в самой деревне и за горою. Левее деревни, в дыму, казалось что то похожее на батарею, но простым глазом нельзя было рассмотреть хорошенько. Правый фланг наш располагался на довольно крутом возвышении, которое господствовало над позицией французов. По нем расположена была наша пехота, и на самом краю видны были драгуны. В центре, где и находилась та батарея Тушина, с которой рассматривал позицию князь Андрей, был самый отлогий и прямой спуск и подъем к ручью, отделявшему нас от Шенграбена. Налево войска наши примыкали к лесу, где дымились костры нашей, рубившей дрова, пехоты. Линия французов была шире нашей, и ясно было, что французы легко могли обойти нас с обеих сторон. Сзади нашей позиции был крутой и глубокий овраг, по которому трудно было отступать артиллерии и коннице. Князь Андрей, облокотясь на пушку и достав бумажник, начертил для себя план расположения войск. В двух местах он карандашом поставил заметки, намереваясь сообщить их Багратиону. Он предполагал, во первых, сосредоточить всю артиллерию в центре и, во вторых, кавалерию перевести назад, на ту сторону оврага. Князь Андрей, постоянно находясь при главнокомандующем, следя за движениями масс и общими распоряжениями и постоянно занимаясь историческими описаниями сражений, и в этом предстоящем деле невольно соображал будущий ход военных действий только в общих чертах. Ему представлялись лишь следующего рода крупные случайности: «Ежели неприятель поведет атаку на правый фланг, – говорил он сам себе, – Киевский гренадерский и Подольский егерский должны будут удерживать свою позицию до тех пор, пока резервы центра не подойдут к ним. В этом случае драгуны могут ударить во фланг и опрокинуть их. В случае же атаки на центр, мы выставляем на этом возвышении центральную батарею и под ее прикрытием стягиваем левый фланг и отступаем до оврага эшелонами», рассуждал он сам с собою…
Всё время, что он был на батарее у орудия, он, как это часто бывает, не переставая, слышал звуки голосов офицеров, говоривших в балагане, но не понимал ни одного слова из того, что они говорили. Вдруг звук голосов из балагана поразил его таким задушевным тоном, что он невольно стал прислушиваться.
– Нет, голубчик, – говорил приятный и как будто знакомый князю Андрею голос, – я говорю, что коли бы возможно было знать, что будет после смерти, тогда бы и смерти из нас никто не боялся. Так то, голубчик.
Другой, более молодой голос перебил его:
– Да бойся, не бойся, всё равно, – не минуешь.
– А всё боишься! Эх вы, ученые люди, – сказал третий мужественный голос, перебивая обоих. – То то вы, артиллеристы, и учены очень оттого, что всё с собой свезти можно, и водочки и закусочки.
И владелец мужественного голоса, видимо, пехотный офицер, засмеялся.
– А всё боишься, – продолжал первый знакомый голос. – Боишься неизвестности, вот чего. Как там ни говори, что душа на небо пойдет… ведь это мы знаем, что неба нет, a сфера одна.
Опять мужественный голос перебил артиллериста.
– Ну, угостите же травником то вашим, Тушин, – сказал он.
«А, это тот самый капитан, который без сапог стоял у маркитанта», подумал князь Андрей, с удовольствием признавая приятный философствовавший голос.
– Травничку можно, – сказал Тушин, – а всё таки будущую жизнь постигнуть…
Он не договорил. В это время в воздухе послышался свист; ближе, ближе, быстрее и слышнее, слышнее и быстрее, и ядро, как будто не договорив всего, что нужно было, с нечеловеческою силой взрывая брызги, шлепнулось в землю недалеко от балагана. Земля как будто ахнула от страшного удара.
В то же мгновение из балагана выскочил прежде всех маленький Тушин с закушенною на бок трубочкой; доброе, умное лицо его было несколько бледно. За ним вышел владетель мужественного голоса, молодцоватый пехотный офицер, и побежал к своей роте, на бегу застегиваясь.


Князь Андрей верхом остановился на батарее, глядя на дым орудия, из которого вылетело ядро. Глаза его разбегались по обширному пространству. Он видел только, что прежде неподвижные массы французов заколыхались, и что налево действительно была батарея. На ней еще не разошелся дымок. Французские два конные, вероятно, адъютанта, проскакали по горе. Под гору, вероятно, для усиления цепи, двигалась явственно видневшаяся небольшая колонна неприятеля. Еще дым первого выстрела не рассеялся, как показался другой дымок и выстрел. Сраженье началось. Князь Андрей повернул лошадь и поскакал назад в Грунт отыскивать князя Багратиона. Сзади себя он слышал, как канонада становилась чаще и громче. Видно, наши начинали отвечать. Внизу, в том месте, где проезжали парламентеры, послышались ружейные выстрелы.
Лемарруа (Le Marierois) с грозным письмом Бонапарта только что прискакал к Мюрату, и пристыженный Мюрат, желая загладить свою ошибку, тотчас же двинул свои войска на центр и в обход обоих флангов, надеясь еще до вечера и до прибытия императора раздавить ничтожный, стоявший перед ним, отряд.
«Началось! Вот оно!» думал князь Андрей, чувствуя, как кровь чаще начинала приливать к его сердцу. «Но где же? Как же выразится мой Тулон?» думал он.
Проезжая между тех же рот, которые ели кашу и пили водку четверть часа тому назад, он везде видел одни и те же быстрые движения строившихся и разбиравших ружья солдат, и на всех лицах узнавал он то чувство оживления, которое было в его сердце. «Началось! Вот оно! Страшно и весело!» говорило лицо каждого солдата и офицера.
Не доехав еще до строившегося укрепления, он увидел в вечернем свете пасмурного осеннего дня подвигавшихся ему навстречу верховых. Передовой, в бурке и картузе со смушками, ехал на белой лошади. Это был князь Багратион. Князь Андрей остановился, ожидая его. Князь Багратион приостановил свою лошадь и, узнав князя Андрея, кивнул ему головой. Он продолжал смотреть вперед в то время, как князь Андрей говорил ему то, что он видел.
Выражение: «началось! вот оно!» было даже и на крепком карем лице князя Багратиона с полузакрытыми, мутными, как будто невыспавшимися глазами. Князь Андрей с беспокойным любопытством вглядывался в это неподвижное лицо, и ему хотелось знать, думает ли и чувствует, и что думает, что чувствует этот человек в эту минуту? «Есть ли вообще что нибудь там, за этим неподвижным лицом?» спрашивал себя князь Андрей, глядя на него. Князь Багратион наклонил голову, в знак согласия на слова князя Андрея, и сказал: «Хорошо», с таким выражением, как будто всё то, что происходило и что ему сообщали, было именно то, что он уже предвидел. Князь Андрей, запихавшись от быстроты езды, говорил быстро. Князь Багратион произносил слова с своим восточным акцентом особенно медленно, как бы внушая, что торопиться некуда. Он тронул, однако, рысью свою лошадь по направлению к батарее Тушина. Князь Андрей вместе с свитой поехал за ним. За князем Багратионом ехали: свитский офицер, личный адъютант князя, Жерков, ординарец, дежурный штаб офицер на энглизированной красивой лошади и статский чиновник, аудитор, который из любопытства попросился ехать в сражение. Аудитор, полный мужчина с полным лицом, с наивною улыбкой радости оглядывался вокруг, трясясь на своей лошади, представляя странный вид в своей камлотовой шинели на фурштатском седле среди гусар, казаков и адъютантов.
– Вот хочет сраженье посмотреть, – сказал Жерков Болконскому, указывая на аудитора, – да под ложечкой уж заболело.
– Ну, полно вам, – проговорил аудитор с сияющею, наивною и вместе хитрою улыбкой, как будто ему лестно было, что он составлял предмет шуток Жеркова, и как будто он нарочно старался казаться глупее, чем он был в самом деле.
– Tres drole, mon monsieur prince, [Очень забавно, мой господин князь,] – сказал дежурный штаб офицер. (Он помнил, что по французски как то особенно говорится титул князь, и никак не мог наладить.)
В это время они все уже подъезжали к батарее Тушина, и впереди их ударилось ядро.
– Что ж это упало? – наивно улыбаясь, спросил аудитор.
– Лепешки французские, – сказал Жерков.
– Этим то бьют, значит? – спросил аудитор. – Страсть то какая!
И он, казалось, распускался весь от удовольствия. Едва он договорил, как опять раздался неожиданно страшный свист, вдруг прекратившийся ударом во что то жидкое, и ш ш ш шлеп – казак, ехавший несколько правее и сзади аудитора, с лошадью рухнулся на землю. Жерков и дежурный штаб офицер пригнулись к седлам и прочь поворотили лошадей. Аудитор остановился против казака, со внимательным любопытством рассматривая его. Казак был мертв, лошадь еще билась.
Князь Багратион, прищурившись, оглянулся и, увидав причину происшедшего замешательства, равнодушно отвернулся, как будто говоря: стоит ли глупостями заниматься! Он остановил лошадь, с приемом хорошего ездока, несколько перегнулся и выправил зацепившуюся за бурку шпагу. Шпага была старинная, не такая, какие носились теперь. Князь Андрей вспомнил рассказ о том, как Суворов в Италии подарил свою шпагу Багратиону, и ему в эту минуту особенно приятно было это воспоминание. Они подъехали к той самой батарее, у которой стоял Болконский, когда рассматривал поле сражения.
– Чья рота? – спросил князь Багратион у фейерверкера, стоявшего у ящиков.
Он спрашивал: чья рота? а в сущности он спрашивал: уж не робеете ли вы тут? И фейерверкер понял это.
– Капитана Тушина, ваше превосходительство, – вытягиваясь, закричал веселым голосом рыжий, с покрытым веснушками лицом, фейерверкер.
– Так, так, – проговорил Багратион, что то соображая, и мимо передков проехал к крайнему орудию.
В то время как он подъезжал, из орудия этого, оглушая его и свиту, зазвенел выстрел, и в дыму, вдруг окружившем орудие, видны были артиллеристы, подхватившие пушку и, торопливо напрягаясь, накатывавшие ее на прежнее место. Широкоплечий, огромный солдат 1 й с банником, широко расставив ноги, отскочил к колесу. 2 й трясущейся рукой клал заряд в дуло. Небольшой сутуловатый человек, офицер Тушин, спотыкнувшись на хобот, выбежал вперед, не замечая генерала и выглядывая из под маленькой ручки.
– Еще две линии прибавь, как раз так будет, – закричал он тоненьким голоском, которому он старался придать молодцоватость, не шедшую к его фигуре. – Второе! – пропищал он. – Круши, Медведев!
Багратион окликнул офицера, и Тушин, робким и неловким движением, совсем не так, как салютуют военные, а так, как благословляют священники, приложив три пальца к козырьку, подошел к генералу. Хотя орудия Тушина были назначены для того, чтоб обстреливать лощину, он стрелял брандскугелями по видневшейся впереди деревне Шенграбен, перед которой выдвигались большие массы французов.
Никто не приказывал Тушину, куда и чем стрелять, и он, посоветовавшись с своим фельдфебелем Захарченком, к которому имел большое уважение, решил, что хорошо было бы зажечь деревню. «Хорошо!» сказал Багратион на доклад офицера и стал оглядывать всё открывавшееся перед ним поле сражения, как бы что то соображая. С правой стороны ближе всего подошли французы. Пониже высоты, на которой стоял Киевский полк, в лощине речки слышалась хватающая за душу перекатная трескотня ружей, и гораздо правее, за драгунами, свитский офицер указывал князю на обходившую наш фланг колонну французов. Налево горизонт ограничивался близким лесом. Князь Багратион приказал двум баталионам из центра итти на подкрепление направо. Свитский офицер осмелился заметить князю, что по уходе этих баталионов орудия останутся без прикрытия. Князь Багратион обернулся к свитскому офицеру и тусклыми глазами посмотрел на него молча. Князю Андрею казалось, что замечание свитского офицера было справедливо и что действительно сказать было нечего. Но в это время прискакал адъютант от полкового командира, бывшего в лощине, с известием, что огромные массы французов шли низом, что полк расстроен и отступает к киевским гренадерам. Князь Багратион наклонил голову в знак согласия и одобрения. Шагом поехал он направо и послал адъютанта к драгунам с приказанием атаковать французов. Но посланный туда адъютант приехал через полчаса с известием, что драгунский полковой командир уже отступил за овраг, ибо против него был направлен сильный огонь, и он понапрасну терял людей и потому спешил стрелков в лес.
– Хорошо! – сказал Багратион.
В то время как он отъезжал от батареи, налево тоже послышались выстрелы в лесу, и так как было слишком далеко до левого фланга, чтобы успеть самому приехать во время, князь Багратион послал туда Жеркова сказать старшему генералу, тому самому, который представлял полк Кутузову в Браунау, чтобы он отступил сколь можно поспешнее за овраг, потому что правый фланг, вероятно, не в силах будет долго удерживать неприятеля. Про Тушина же и баталион, прикрывавший его, было забыто. Князь Андрей тщательно прислушивался к разговорам князя Багратиона с начальниками и к отдаваемым им приказаниям и к удивлению замечал, что приказаний никаких отдаваемо не было, а что князь Багратион только старался делать вид, что всё, что делалось по необходимости, случайности и воле частных начальников, что всё это делалось хоть не по его приказанию, но согласно с его намерениями. Благодаря такту, который выказывал князь Багратион, князь Андрей замечал, что, несмотря на эту случайность событий и независимость их от воли начальника, присутствие его сделало чрезвычайно много. Начальники, с расстроенными лицами подъезжавшие к князю Багратиону, становились спокойны, солдаты и офицеры весело приветствовали его и становились оживленнее в его присутствии и, видимо, щеголяли перед ним своею храбростию.


Князь Багратион, выехав на самый высокий пункт нашего правого фланга, стал спускаться книзу, где слышалась перекатная стрельба и ничего не видно было от порохового дыма. Чем ближе они спускались к лощине, тем менее им становилось видно, но тем чувствительнее становилась близость самого настоящего поля сражения. Им стали встречаться раненые. Одного с окровавленной головой, без шапки, тащили двое солдат под руки. Он хрипел и плевал. Пуля попала, видно, в рот или в горло. Другой, встретившийся им, бодро шел один, без ружья, громко охая и махая от свежей боли рукою, из которой кровь лилась, как из стклянки, на его шинель. Лицо его казалось больше испуганным, чем страдающим. Он минуту тому назад был ранен. Переехав дорогу, они стали круто спускаться и на спуске увидали несколько человек, которые лежали; им встретилась толпа солдат, в числе которых были и не раненые. Солдаты шли в гору, тяжело дыша, и, несмотря на вид генерала, громко разговаривали и махали руками. Впереди, в дыму, уже были видны ряды серых шинелей, и офицер, увидав Багратиона, с криком побежал за солдатами, шедшими толпой, требуя, чтоб они воротились. Багратион подъехал к рядам, по которым то там, то здесь быстро щелкали выстрелы, заглушая говор и командные крики. Весь воздух пропитан был пороховым дымом. Лица солдат все были закопчены порохом и оживлены. Иные забивали шомполами, другие посыпали на полки, доставали заряды из сумок, третьи стреляли. Но в кого они стреляли, этого не было видно от порохового дыма, не уносимого ветром. Довольно часто слышались приятные звуки жужжанья и свистения. «Что это такое? – думал князь Андрей, подъезжая к этой толпе солдат. – Это не может быть атака, потому что они не двигаются; не может быть карре: они не так стоят».
Худощавый, слабый на вид старичок, полковой командир, с приятною улыбкой, с веками, которые больше чем наполовину закрывали его старческие глаза, придавая ему кроткий вид, подъехал к князю Багратиону и принял его, как хозяин дорогого гостя. Он доложил князю Багратиону, что против его полка была конная атака французов, но что, хотя атака эта отбита, полк потерял больше половины людей. Полковой командир сказал, что атака была отбита, придумав это военное название тому, что происходило в его полку; но он действительно сам не знал, что происходило в эти полчаса во вверенных ему войсках, и не мог с достоверностью сказать, была ли отбита атака или полк его был разбит атакой. В начале действий он знал только то, что по всему его полку стали летать ядра и гранаты и бить людей, что потом кто то закричал: «конница», и наши стали стрелять. И стреляли до сих пор уже не в конницу, которая скрылась, а в пеших французов, которые показались в лощине и стреляли по нашим. Князь Багратион наклонил голову в знак того, что всё это было совершенно так, как он желал и предполагал. Обратившись к адъютанту, он приказал ему привести с горы два баталиона 6 го егерского, мимо которых они сейчас проехали. Князя Андрея поразила в эту минуту перемена, происшедшая в лице князя Багратиона. Лицо его выражало ту сосредоточенную и счастливую решимость, которая бывает у человека, готового в жаркий день броситься в воду и берущего последний разбег. Не было ни невыспавшихся тусклых глаз, ни притворно глубокомысленного вида: круглые, твердые, ястребиные глаза восторженно и несколько презрительно смотрели вперед, очевидно, ни на чем не останавливаясь, хотя в его движениях оставалась прежняя медленность и размеренность.
Полковой командир обратился к князю Багратиону, упрашивая его отъехать назад, так как здесь было слишком опасно. «Помилуйте, ваше сиятельство, ради Бога!» говорил он, за подтверждением взглядывая на свитского офицера, который отвертывался от него. «Вот, изволите видеть!» Он давал заметить пули, которые беспрестанно визжали, пели и свистали около них. Он говорил таким тоном просьбы и упрека, с каким плотник говорит взявшемуся за топор барину: «наше дело привычное, а вы ручки намозолите». Он говорил так, как будто его самого не могли убить эти пули, и его полузакрытые глаза придавали его словам еще более убедительное выражение. Штаб офицер присоединился к увещаниям полкового командира; но князь Багратион не отвечал им и только приказал перестать стрелять и построиться так, чтобы дать место подходившим двум баталионам. В то время как он говорил, будто невидимою рукой потянулся справа налево, от поднявшегося ветра, полог дыма, скрывавший лощину, и противоположная гора с двигающимися по ней французами открылась перед ними. Все глаза были невольно устремлены на эту французскую колонну, подвигавшуюся к нам и извивавшуюся по уступам местности. Уже видны были мохнатые шапки солдат; уже можно было отличить офицеров от рядовых; видно было, как трепалось о древко их знамя.