summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/zh/javascript-trap.html
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/blog/articles/zh/javascript-trap.html')
-rw-r--r--talermerchantdemos/blog/articles/zh/javascript-trap.html73
1 files changed, 47 insertions, 26 deletions
diff --git a/talermerchantdemos/blog/articles/zh/javascript-trap.html b/talermerchantdemos/blog/articles/zh/javascript-trap.html
index 19ac700..ea0f56b 100644
--- a/talermerchantdemos/blog/articles/zh/javascript-trap.html
+++ b/talermerchantdemos/blog/articles/zh/javascript-trap.html
@@ -1,25 +1,34 @@
<!--#set var="ENGLISH_PAGE" value="/philosophy/javascript-trap.en.html" -->
<!--#include virtual="/server/header.zh-cn.html" -->
-<!-- Parent-Version: 1.90 -->
+<!-- Parent-Version: 1.96 -->
+<!-- This page is derived from /server/standards/boilerplate.html -->
+<!--#set var="TAGS" value="essays licensing traps" -->
+<!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
<!-- This file is automatically generated by GNUnited Nations! -->
-<title>JavaScript的陷阱</title>
+<title>JavaScript 的陷井 - GNU 工程 - 自由软件基金会</title>
<!--#include virtual="/philosophy/po/javascript-trap.translist" -->
<!--#include virtual="/server/banner.zh-cn.html" -->
-<h2>JavaScript的陷阱</h2>
+<!--#include virtual="/philosophy/ph-breadcrumb.zh-cn.html" -->
+<!--GNUN: OUT-OF-DATE NOTICE-->
+<!--#include virtual="/server/top-addendum.zh-cn.html" -->
+<div class="article reduced-width">
+<h2>JavaScript 的陷阱</h2>
-<p><a href="http://www.stallman.org/">Richard Stallman</a> 著</p>
+<address class="byline"><a href="https://www.stallman.org/">理查德·斯托曼</a> 著</address>
<p><strong>你可能每天都在自己的电脑上运行非自由软件却毫不知情&mdash;&mdash;通过使用你的浏览器。</strong></p>
<!-- any links that used to point to the appendices should point to
free-your-javascript.html instead. -->
-<blockquote>
+<div class="announcement">
+<hr class="no-display" />
<p>网络管理员:有<a
href="/software/librejs/free-your-javascript.html">好几种方法</a>可以指示网站的JavaScript程序的许可证。</p>
-</blockquote>
+<hr class="no-display" />
+</div>
<p>在自由软件社区,<a
href="/philosophy/free-software-even-more-important.html">非自由软件会侵害其用户</a>的概念大家都很熟悉。有些人会拒绝在电脑上使用任何专有软件,以此来捍卫自己的自由。还有许多人意识到非自由并拒绝那些程序。</p>
@@ -35,30 +44,38 @@ Docs会尝试在你的电脑里下载大约500k字节的JavaScript程序,该
href="/philosophy/free-sw.html">自由软件定义</a>的内容包含着用户可以访问程序的源代码。一个程序的源代码应该是有利于修改程序的形式&mdash;包括有利阅读的空格和分行、解释性注释和有意义的名称。这种紧密格式不是源代码,而只是毫无用处的源代码替代品;其源代码并没有提供给用户,因而用户无法了解该程序;该程序是非自由的。</p>
<p>除了是非自由软件,许多这种程序是<em>恶意软件</em>,因为它们<a
-href="http://github.com/w3c/fingerprinting-guidance/issues/8">嗅探用户</a>。更恶劣的是,有些站点使用服务来记录<a
+href="https://github.com/w3c/fingerprinting-guidance/issues/8">嗅探用户</a>。更恶劣的是,有些站点使用服务来记录<a
href="https://freedom-to-tinker.com/2017/11/15/no-boundaries-exfiltration-of-personal-data-by-session-replay-scripts/">用户浏览该页面时的所有行为</a>。该服务本来应该&ldquo;修改&rdquo;记录以抹去网站不该获得的一些敏感数据。但是,即使该功能能够可靠的实施,该服务的整体目的也是给予该网站它不应该获得的个人数据。</p>
<p>浏览器一般不会告诉你它们什么时候会加载JavaScript程序。有些浏览器提供了完全禁用JavaScript的方法,可是即使你知道有问题,你还是需要花很多精力去确认这些非自由软件并拦截它们。然而,就连自由软件社区的大多数用户都不知道这个有问题;而浏览器的沉默也好似在掩盖这个问题。</p>
-<p>可以把JavaScript程序发布为自由软件,使用自由软件许可证发布其源代码就行。如果该程序是自给自足的&mdash;&mdash;如果它的功能和目的独立于它所应用的网站&mdash;&mdash;这就没问题;你可以将其拷贝到你的电脑,修改它,使用浏览器加载它并运行它。但是这并不是其通常的情形。</p>
+<p>澄清一下,JavaScript 语言本身和其他语言一样,并不影响用户的自由。JavaScript
+程序也能发布为自由软件,使用自由软件许可证发布其源代码就行。如果该程序是自给自足的&mdash;&mdash;如果它的功能和目的独立于它所应用的网站&mdash;&mdash;这就没问题;你可以将其拷贝到你的电脑,修改它,使用浏览器加载它并运行它。你甚至可以把
+JavaScript 象其他自由软件一样打包,并在命令行调用。这些程序和 C 程序一样并没有特别的道德问题。</p>
+
+<p>JavaScript 陷阱适用于用户访问网页时网页带有的 JavaScript 程序。这些 JavaScript
+程序专门为特定网页或网站编写,这些网页或网站依赖这些程序才能工作。</p>
-<p>通常情况下,JavaScript程序会和特定的网页或网站一起工作,而那个网页或网站有了这个程序才能正常工作。这就出现了另一个问题:即使有源程序,浏览器也无法运行你修改的版本,除非你使用原来的版本访问特定的网站或网页。这个效果和tivoization<sup><a
-href="#TransNote1">1</a></sup>类似,虽然从根本上不是那么难以解决。</p>
+<p>假定你可以复制和修改这些
+JavaScript程序。这就出现了另一个问题:即使有源程序,浏览器也无法运行你修改的版本,它只支持使用原来的版本访问该网站或网页。这个效果和
+tivoization<sup><a href="#TransNote1">1</a></sup>类似,虽然从根本上不象那么难以解决。</p>
-<p>JavaScript不是网站发送到用户的程序使用的唯一语言。Flash支持用一种扩展的JavaScript语言编程;如果我们有足够完整的自由Flash播放器,我们就可以对付非自由Flash程序带来的问题。Silverlight似乎也和Flash一样创建一些程序,可能更糟,因为微软使用它作为非自由编解码器的平台。自由的Silverlight替代不能为自由世界正常工作,除非它还带有自由的编解码替代。</p>
+<p>JavaScript 不是网站发送到用户的程序使用的唯一语言。Flash 支持用一种扩展的 JavaScript
+语言编程,不过这个已经是历史了。Silverlight 似乎也和 Flash 一样创建一些程序,可能更糟,因为微软使用它作为非自由编解码器的平台。自由的
+Silverlight 替代不能为自由世界正常工作,除非它还带有自由的编解码替代。</p>
<p>Java小程序<sup><a
href="#TransNote2">2</a></sup>也会在浏览器里运行,也就有同样的问题。一般来说,各种小程序系统都有这样的问题。创建一个运行小程序的自由环境仅仅是让我们能够看到这个问题。</p>
<p>理论上能够使用HTML和CSS编程,但是实际上它不方便而且受限制;最多只是展示一些令人惊奇的黑客编程技巧。这些程序理应是自由的,不过CSS在2019年还不是影响用户自由的严重问题。</p>
-<p>已经有一个强大的运动,它号召网站只使用自由(有的人叫&quot;开放&quot;)的格式和协议来通信;就是说,它们的文档应该公开,而且任何人都有自由来实现。然而,当网页带有JavaScript程序时,这个标准就不够了。JavaScript本身,作为一种格式,是自由的,而且在网站上使用JavaScript并不必然是坏事。然而,正如以上所看到的,它也不必然就是好事&mdash;&mdash;如果JavaScript程序是非自由软件。当网站将程序转移到用户,程序只是由有文档、不受限制的语言编写并不足够;该程序必须也是自由的。&ldquo;只许把自由软件转移到用户&rdquo;必须成为网站行为规范的准则。</p>
+<p>已经有一个强大的运动,它号召网站只使用自由(有的人叫&ldquo;开放&rdquo;)的格式和协议来通信;就是说,它们的文档应该公开,而且任何人都有自由来实现。然而,当网页带有JavaScript程序时,这个标准就不够了。JavaScript本身,作为一种格式,是自由的,而且在网站上使用JavaScript并不必然是坏事。然而,正如以上所看到的,它也不必然就是好事&mdash;&mdash;如果JavaScript程序是非自由软件。当网站将程序转移到用户,程序只是由有文档、不受限制的语言编写并不足够;该程序必须也是自由的。&ldquo;只许把自由软件转移到用户&rdquo;必须成为网站行为规范的准则。</p>
-<p>不动声色地加载和运行非自由软件只是&quot;网络应用&quot;带来的诸多问题之一。&quot;网络应用&quot;这一术语就是用来抹杀用户软件和服务器软件的根本区别。它可以指运行在浏览器里的特定客户端软件;它也可以指特定的服务器软件;它还可以指和特定服务器软件紧密协作的客户端软件。客户端和服务器端有不同的道德问题,即使它们如此紧密地协作,以至于可以说它们是一个软件的不同部分。本文只讨论客户端软件的问题。我们会分开讨论服务器端的软件。</p>
+<p>不动声色地加载和运行非自由软件只是&ldquo;网络应用&rdquo;带来的诸多问题之一。&ldquo;网络应用&rdquo;这一术语就是用来抹杀用户软件和服务器软件的根本区别。它可以指运行在浏览器里的特定客户端软件;它也可以指特定的服务器软件;它还可以指和特定服务器软件紧密协作的客户端软件。客户端和服务器端有不同的道德问题,即使它们如此紧密地协作,以至于可以说它们是一个软件的不同部分。本文只讨论客户端软件的问题。我们会分开讨论服务器端的软件。</p>
<p>实际操作中,我们应该如何对付网站上非自由、非平凡的JavaScript程序带来的问题呢?第一步就是避免运行它。</p>
-<p>什么是我们说的&quot;非平凡&quot;呢?它表示的是程度,所以它是指设计一种简明的标准来获得好的结果,而不是去寻求唯一正确的答案。</p>
+<p>什么是我们说的&ldquo;非平凡&rdquo;呢?它表示的是程度,所以它是指设计一种简明的标准来获得好的结果,而不是去寻求唯一正确的答案。</p>
<p>
我们目前的标准认为一个JavaScript程序是非平凡的,如果它满足以下任一条件:</p>
@@ -101,14 +118,17 @@ href="/software/librejs/">LibreJS</a>程序就可以探测到你访问的网页
<!-- any links that used to point to the appendices should point to
free-your-javascript.html instead. -->
-<blockquote>
+<div class="announcement">
+<hr class="no-display" />
<p>网络管理员:有<a
href="/software/librejs/free-your-javascript.html">好几种方法</a>可以指示网站的JavaScript程序的许可证。</p>
-</blockquote>
+<hr class="no-display" />
+</div>
-<p><strong>致谢:</strong>我感谢<a href="/people/people.html#mattlee">Matt Lee</a>和<a
-href="http://ejohn.org">John Resig</a>,他们帮助我们定义了我们提议的标准,还感谢David
-Parunakian提醒我关注此问题。</p>
+<p><strong>致谢:</strong>我感谢 <a href="/people/people.html#mattlee">Matt Lee</a> 和
+<a href="https://ejohn.org">John Resig</a>,他们帮助我们定义了我们提议的标准,还感谢 David
+Parunakian 提醒我关注此问题。</p>
+</div>
<div class="translators-notes">
@@ -123,7 +143,7 @@ id="TransNote1">tivoization,是一种电脑工具,它包含在GPL软件内
<!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.zh-cn.html" -->
-<div id="footer">
+<div id="footer" role="contentinfo">
<div class="unprintable">
<p>请将有关自由软件基金会(FSF)&amp;GNU的一般性问题发送到<a
@@ -142,12 +162,13 @@ href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>。</p>
&lt;web-translators@gnu.org&gt;</a>.</p>
- <p>For information on coordinating and submitting translations of
+ <p>For information on coordinating and contributing translations of
our web pages, see <a
href="/server/standards/README.translations.html">Translations
README</a>. -->
-若您想翻译本文,请参看<a
-href="/server/standards/README.translations.html">翻译须知</a>获取有关协调和提交翻译的相关事项。</p>
+我们尽最大努力来提供精准和高质量的翻译,但难免会存在错误和不足。如果您在这方面有评论或一般性的建议,请发送至 <a
+href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>。</p><p>关于进行协调与提交翻译的更多信息参见
+<a href="/server/standards/README.translations.html">《译者指南》</a>。</p>
</div>
<!-- Regarding copyright, in general, standalone pages (as opposed to
@@ -166,7 +187,7 @@ href="/server/standards/README.translations.html">翻译须知</a>获取有关
There is more detail about copyright years in the GNU Maintainers
Information document, www.gnu.org/prep/maintain. -->
-<p>Copyright &copy; 2009-2013, 2016, 2017, 2018, 2019 Richard Stallman</p>
+<p>Copyright &copy; 2009-2013, 2016-2019, 2021 Richard Stallman</p>
<p>本页面使用<a rel="license"
href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons
@@ -177,12 +198,12 @@ Attribution-NoDerivatives 4.0 International License</a>授权。</p>
<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
<b>翻译团队</b>:<a rel="team"
-href="https://savannah.gnu.org/projects/www-zh-cn/">&lt;CTT&gt;</a>,2017-2019。</div>
+href="https://savannah.gnu.org/projects/www-zh-cn/">&lt;CTT&gt;</a>,2017-2019,2021。</div>
<p class="unprintable"><!-- timestamp start -->
最后更新:
-$Date: 2019/12/30 12:08:30 $
+$Date: 2021/10/12 02:02:01 $
<!-- timestamp end -->
</p>