Пользовательские изменения в JavaScript для Acrobat или Reader 10.1.1

Аудитория

Администраторы предприятия, управляющие компьютерами, на которых используются рабочие процессы, применяющие глобальные переменные (Windows и Macintosh) или пользовательские сценарии JavaScript (только Windows).

Обзор

По причине высокой заинтересованности Adobe в безопасности периодически выпускаются изменения в функциональности Acrobat и Adobe Reader, чтобы еще больше повысить сопротивляемость продукта вредоносным атакам. В рамках этой работы в версии 10.1.1 представлены изменения в элементе JavaScript, который содержит глобальные переменные и выполняет заданные пользователем сценарии.

До версии 10.1.1 пользователь мог поместить файлы JavaScript файл в папку in %ApplicationData%\Adobe\(название продукта)\(версия)\JavaScripts, которые выполнялись автоматически при запуске приложения. Например, для изменения пользовательского интерфейса путем скрытия или добавления элементов меню на компьютере с ОС Windows XP IT-администратор мог поместить файл JS в папку C:\Documents and Settings\(имя пользователя)\Application Data\Adobe\Acrobat\10.0\JavaScripts. Кроме того, в папке содержатся два файла — glob.js и glob.settings.js, в которые продукт может выполнять чтение и запись при хранении глобальных переменных.

Изменения для версии 10.1.1

Согласно замыслу, процессами Acrobat не выполняется запись в папку %ApplicationData%\ Acrobat\Privileged\10.0. Кроме того, для изолированных процессов существует специальный запрет записи в эту папку. Таким образом, наиболее безопасной операцией является включение режима «Защищенный просмотр» в Acrobat и «Защищенный просмотр» в Reader, в результате чего все процессы изолируются. Кроме того, в версии 10.1.1 внедрены следующие изменения:

  • Новое местоположение пользовательского JS: пользовательская папка JavaScript перемещена из
    • Vista и Windows 7: Users\(имя пользователя)\AppData\Roaming\Adobe\Acrobat\10.0\JavaScripts в папку Users\(имя пользователя)\AppData\Roaming\Adobe\Acrobat\Privileged\10.0\JavaScripts. Например, новый путь может выглядеть так: C:\Users\JoeUser\AppData\Roaming\Adobe\Acrobat\Privileged\10.0\JavaScripts
    • XP: Documents and Settings\(имя пользователя)\Application Data\Adobe\Acrobat\10.0\JavaScripts в папку Documents and Settings\(имя пользователя)\Application Data\Adobe\Acrobat\Privileged\10.0\JavaScripts. Например, новый путь может выглядеть так: C:\Documents and Settings\JoeUser\Application Data\Adobe\Acrobat\Privileged\10.0\JavaScripts

Примечание. Это изменение применимо только для Windows. Кроме того, изменение не распространяется на следующую папку: C:\Program Files\Adobe\(название и версия продукта)\(название продукта)\JavaScripts.

  • Новый формат и местоположение для постоянных глобальных переменных: настройки переменных, хранящиеся в файлах glob.settings.js и glob.js, теперь помещены в новую папку: %ApplicationData%\Adobe\Acrobat\10.0\JSCache. Пары ключевых значений, выводимых из ASCab, используются для инициализации постоянных глобальных переменных. Настройки не сохраняются в эту папку как файлы JavaScript.

Что следует сделать

Если вы не сохранили переменные как постоянные глобальные переменные и не поместили пользовательские сценарии JavaScript в затронутые каталоги, вы можете игнорировать это изменение. Однако, если вы выполнили одну или обе из этих операций, сохранить целостность рабочих процессов можно, выполнив следующие действия:

Для проблем с глобальными переменными (Windows и Macintosh)

  • Убедитесь в том, что в файлах glob.js и glob.settings.js не содержится ничего кроме пар ключевых значений и скалярных величин. Рабочие процессы, которые используют эти файлы для сохранения прочих элементов, не будут работать.
  • Поскольку все данные, хранящиеся в файлах glob.js и glob.setting.js, во время применения версии 10.1.1 будут потеряны, сохранить целостность рабочих процессов можно, выполнив следующие действия:

1. Для Acrobat вы можете выполнить одну из следующих операций:

  • Скопируйте код JavaScript в имеющиеся файлы glob.js и glob.setting.js из старой папки JavaScript и выполните его в консоли JavaScript во время нового сеанса Acrobat. Таким образом, сохраненные глобальные переменные будут экспортированы в новом сеансе Acrobat. Или,
  • Скопируйте файлы glob.js и glob.setting.js из старой папки JavaScripts в папку %Program Files%/Adobe/Reader/JavaScript и затем удалите исходные файлы. Перезапустите продукт, чтобы экспортировать переменные в новый формат.

Примечание. Для Adobe Reader можно использовать только последний метод, поскольку консоль JavaScript недоступна, если вы не включили ее, используя описанный в следующем блоге способ: http://blogs.adobe.com/pdfdevjunkie/2008/10/how_to_use_the_javascript_debu.html.

2. Вручную выполните метод JavaScript setPersistent для всех глобальных переменных, чтобы убедиться в том, что они правильно перенесены в новый формат. Например, запустите следующий код JavaScript в консоли:

for (var name in global) global.setPersistent("global."+name, true);

Ошибки пользовательского сценария JavaScript (только для ОС Windows)

Скопируйте все созданные пользователем файлы JavaScript из папки %APPDATA%\Adobe\Acrobat\10.0\JavaScripts в папку %APPDATA%\Adobe\Acrobat\Privileged\10.0\JavaScripts.

Получайте помощь быстрее и проще

Новый пользователь?