受众

企业管理员,其负责管理的计算机涉及使用永久性全局变量(Windows 和 Macintosh)或自定义 JavaScript(仅限 Windows)的工作流程。

概述

由于 Adobe 高度关注安全性,因此将针对现有的 Acrobat 和 Adobe Reader 功能定期发布一些更改,以进一步强化产品对恶意攻击的抵抗能力。作为该项工作的一部分,10.1.1 对存储全局变量并执行用户定义脚本的 JavaScript 功能进行了更改。

在 10.1.1 之前的版本中,最终用户可以将 JavaScript 文件放置在 %ApplicationData%\Adobe\(产品名称)\(版本)\JavaScripts 中,这些文件会在应用程序启动时自动执行。例如,IT 人员可以在 Windows XP 计算机的 C:\Documents and Settings\(用户名)\Application Data\Adobe\Acrobat\10.0\JavaScripts 中放置一个 JS 文件,以通过隐藏或添加菜单项来修改产品用户界面。此外,该文件夹还包含 glob.js 和 glob.settings.js,在产品存储全局变量时,会读写这两个文件。

10.1.1 中的更改

根据设计,Acrobat 进程不会写入 %ApplicationData%\ Acrobat\Privileged\10.0 文件夹。此外,还特别禁止沙盒化的进程写入该文件夹。因此,最安全的操作是在 Acrobat 中启用“受保护视图”,在 Reader 中启用“保护模式”,从而沙盒化所有进程。此外,10.1.1 还引入了以下更改:

  • 新的用户 JS 位置:用户 JavaScript 文件夹发生了如下移动:
    • Vista 和 Windows 7:从“用户\(用户名)\AppData\Roaming\Adobe\Acrobat\10.0\JavaScripts”移动到“用户\(用户名)\AppData\Roaming\Adobe\Acrobat\Privileged\10.0\JavaScripts”。例如,新路径可能是 C:\用户\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,您可以:

  • 从旧 JavaScripts 文件夹复制现有 glob.js 和 glob.setting.js 文件中的 JavaScript,然后在新 Acrobat 会话的 JavaScript 控制台中执行。这会将存储的全局变量导出到新 Acrobat 会话。或,
  • 将 glob.js 和 glob.setting.js 从旧 JavaScripts 文件夹复制到 %Program Files%/Adobe/Reader/JavaScript 文件夹,然后删除原始文件。重新启动产品以将变量导出到新格式。

注意:对于 Adobe Reader,只能使用后一种方法,因为除非已经按照 http://blogs.adobe.com/pdfdevjunkie/2008/10/how_to_use_the_javascript_debu.html 中的说明启用 JavaScript 控制台,否则 JavaScript 控制台不可用。

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。

本产品经 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 许可  Twitter™ 与 Facebook 中的内容不在 Creative Commons 的条款约束之下。

法律声明   |   在线隐私策略