summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/uk/javascript-trap.html
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/blog/articles/uk/javascript-trap.html')
-rw-r--r--talermerchantdemos/blog/articles/uk/javascript-trap.html296
1 files changed, 296 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/uk/javascript-trap.html b/talermerchantdemos/blog/articles/uk/javascript-trap.html
new file mode 100644
index 0000000..fe42706
--- /dev/null
+++ b/talermerchantdemos/blog/articles/uk/javascript-trap.html
@@ -0,0 +1,296 @@
+<!--#set var="PO_FILE"
+ value='<a href="/philosophy/po/javascript-trap.uk.po">
+ https://www.gnu.org/philosophy/po/javascript-trap.uk.po</a>'
+ --><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html"
+ --><!--#set var="DIFF_FILE" value="/philosophy/po/javascript-trap.uk-diff.html"
+ --><!--#set var="OUTDATED_SINCE" value="2018-03-31" -->
+
+<!--#include virtual="/server/header.uk.html" -->
+<!-- Parent-Version: 1.84 -->
+
+<!-- This file is automatically generated by GNUnited Nations! -->
+<title>Пастка JavaScript</title>
+
+<!--#include virtual="/philosophy/po/javascript-trap.translist" -->
+<!--#include virtual="/server/banner.uk.html" -->
+<!--#include virtual="/server/outdated.uk.html" -->
+<h2>Пастка JavaScript</h2>
+
+<p><a href="http://www.stallman.org/">Річард Столмен</a></p>
+
+<p><strong>Не виключено, що ви запускаєте невільні програми на своєму
+комп'ютері кожен день, навіть не усвідомлюючи цього&nbsp;&nbsp; з вашого
+браузера.</strong></p>
+
+<!-- any links that used to point to the appendices should point to
+ free-your-javascript.html instead. -->
+<blockquote>
+<p>Веб-майстри: існує <a
+href="/software/librejs/free-your-javascript.html">декілька способів вказати
+ліцензію програми на JavaScript</a> на сайті.</p>
+</blockquote>
+
+<p>Спільнота вільного програмного забезпечення добре знайома з ідеєю, що
+невільні програми несправедливі стосовно користувачів. Деякі з нас захищають
+нашу свободу, відкидаючи всякі невільні програми на наших
+комп'ютерах. Багато інші вважають закритість програми серйозним недоліком.</p>
+
+<p>Багатьом користувачам відомо, що це питання стосується модулів, які браузери
+пропонують встановити, бо вони можуть бути вільними або невільними. Але
+існують інші невільні програми, які браузери виконують, навіть не питаючи
+вас і не кажучи вам про це&nbsp;&nbsp;це програми, на які посилаються або
+які містять сторінки сайту. Ці програми найчастіше написані на мові
+JavaScript, хоча використовуються й інші мови.</p>
+
+<p>JavaScript (офіційно званий &ldquo;ECMAScript&rdquo;, але мало хто вживає цю
+назву) колись застосовували для дрібних надмірностей на сторінках Інтернету,
+таких, як цікаві, але несуттєві деталі відображення і навігації. Було
+допустимо розглядати їх просто як доповнення до розмітки HTML, а не як
+справжні програми; вони не становили значущої теми для обговорення. </p>
+
+<p>Багато сайтів досі використовують JavaScript таким чином, але деякі
+застосовують його для великих програм, які вирішують серйозні
+завдання. Наприклад, &ldquo;Google Docs&rdquo; встановлює на вашій машині
+програму на JavaScript, що займає півмегабайта в стислому вигляді, який ми
+називаємо &ldquo;Obfuscript&rdquo; (заплутаний сценарій), тому що там немає
+коментарів і майже немає пропусків, а назви методів складаються з однієї
+літери. Вихідний текст програми&nbsp;&nbsp; це форма, бажана для зміни
+програми; стиснутий текст не є вихідним кодом, і справжній вихідний код
+недоступний користувачеві.</p>
+
+<p>Багато з цих програм не тільки невільні, вони ще й шкідливі, бо що <a
+href="http://github.com/w3c/fingerprinting-guidance/issues/8">шпигують за
+користувачем</a>.</p>
+
+<p>Браузери зазвичай не повідомляють вам про те, що вони завантажують програми
+на JavaScript. В деяких браузерах є спосіб повністю вимкнути JavaScript, але
+навіть якщо ви знайомі з цією проблемою, вам було б достатньо важко
+розпізнати змістовні невільні програми і заблокувати їх. Однак навіть у
+спільноті вільного програмного забезпечення більшість користувачів не знає
+про цю проблему; мовчання браузерів не виставляє її напоказ.</p>
+
+<p>Є можливість зробити програму на JavaScript вільною, поширюючи вихідний код
+за ліцензією вільних програм. Якщо програма самостійна&nbsp;&mdash; якщо її
+робота і призначення не залежать від сторінки, на якій вона
+використовується&nbsp;&nbsp; чудово; ви можете зберегти її на своїй машині,
+змінити її і відкрити в браузері, щоб працювати з нею. Але так зазвичай не
+роблять.</p>
+
+<p>Зазвичай програми на JavaScript призначені для роботи з конкретною сторінкою
+або конкретним сайтом, а робота сторінки залежить від цих програм. Тоді
+постає інша проблема: навіть якщо вихідний текст програми доступний,
+браузери не пропонують способу працювати зі зміненою вами версією замість
+вихідної, коли ви відвідуєте цей сайт. Цей ефект можна порівняти з
+тівоїзацією, хоча його в принципі не так важко подолати.</p>
+
+<p>JavaScript&nbsp;&mdash; не єдина мова, на якій написані програми, що
+передаються з сайтів користувачеві. Flash підтримує програмування за
+допомогою розширеного варіанту мови JavaScript; якщо у нас буде хоча б
+досить повноцінний вільний програвач Flash, нам буде необхідно вирішувати
+проблему невільних програм на Flash. Silverlight, здається, створює
+проблеми, схожі з Flash, тільки ще гірші, бо Microsoft застосовує його як
+базу для невільних кодеків. Вільна заміна Silverlight не вирішить проблему
+для вільного світу, якщо разом з нею не будуть поставлятися вільні заміни
+кодеків.</p>
+
+<p>Аплети на мові Java теж виконуються в браузері і призводять до схожих
+проблем. Взагалі кажучи, будь-яка система аплетів призводить до проблем
+цього роду. Наявність вільного середовища для виконання аплетів приводить
+нас тільки до постановки цього питання.</p>
+
+<p>Теоретично можливо програмувати на HTML і CSS, але на практиці ці можливості
+обмежені, це незручно; для кожної крихти вимагається неабияка
+майстерність. Такі програми повинні бути вільні, але на&nbsp;2016&nbsp;рік
+CSS не становить серйозної проблеми для користувачів.</p>
+
+<p>Виник потужний рух, який закликає застосовувати на сайтах тільки вільні
+(деякі кажуть &ldquo;відкриті&rdquo;) формати і протоколи, тобто ті,
+документація на які опублікована і які кожен вільний реалізувати. При
+наявності програм на сторінках сайтів це умова необхідна, але не
+достатня. Сам по собі JavaScript вільний як формат, і коли його застосовують
+на сайті, це не обов'язково погано. Однак, як ми бачили вище, цього не
+завжди достатньо. Коли сайт передає програму користувачеві, недостатньо, щоб
+програма була написана на документованій мові, яка не викликає труднощів
+мовою&nbsp;&nbsp; ця програма теж повинна бути вільна. &ldquo;Користувачу
+передаються тільки вільні програми - це повинно стати частиною критерію
+коректної поведінки сайтів.</p>
+
+<p>Мовчазне завантаження та виконання невільних програм&nbsp;&mdash; одна з
+кількох проблем, що порушуються &ldquo;веб-додатками&rdquo;. Термін
+&ldquo;веб-додаток&rdquo; був створений, щоб стерти принципову відмінність
+між програмами, які передають користувачам, і програмами, які працюють на
+сервері. Він може позначати особливу клієнтську програму, яку виконує
+браузер; він може позначати особливу серверну програму; він може позначати
+особливу клієнтську програму, яка працює поряд із особливою серверною
+програмою. Клієнтська і серверна сторони зачіпають різні етичні питання,
+навіть якщо вони так тісно пов'язані, що можна стверджувати, що вони
+представляють собою частини однієї програми. Ця стаття розглядає тільки
+проблему програм на клієнтській стороні. Проблему серверної сторони ми
+розглядаємо окремо.</p>
+
+<p>Як на практиці ми можемо вирішувати проблему нетривіальних невільних програм
+на мові JavaScript на сайтах? Перший крок&nbsp;&nbsp; уникати їх виконання.</p>
+
+<p>Що ми розуміємо під &ldquo;нетривіальним&rdquo;? Це поняття широке, тому це
+питання створення простого критерію, що дає хороші результати, а не пошук
+єдиної вірної відповіді.</p>
+<p>
+Ми пропонуємо використовувати правило, згідно якого програма на JavaScript
+нетривіальна, якщо:</p>
+
+<ul>
+ <li>вона виконує запити AJAX або завантажується з програмами, які виконують
+запити AJAX, </li>
+
+ <li>вона динамічно завантажує зовнішні програми або завантажується з
+програмами,які це роблять, </li>
+
+ <li>вона визначає функції або методи і завантажує зовнішню програму (зHTML), або
+сама завантажується як така, </li>
+
+ <li>вона застосовує динамічні конструкції, які важко аналізувати без
+інтерпретації програми або завантажується з програмами, які застосовують
+такі конструкції. До цих конструкцій відносяться:
+ <ul>
+ <li>застосування функції <code>eval</code>,</li>
+ <li>виклик методів із застосуванням нотації квадратних дужок, </li>
+ <li>застосування будь-якої конструкції, крім рядкового літерала, з
+певнимиметодами (Obj.write, Obj.createElement, ...).</li>
+ </ul>
+ </li>
+</ul>
+
+<p>Як ми дізнаємося, чи вільні програми на JavaScript? <a
+href="/licenses/javascript-labels.html">У цій статті</a> ми пропонуємо
+метод, за яким нетривіальна програма на мові JavaScript на сторінці сайту
+може вказати адресу, де знаходиться її вихідний текст, а також зазначити
+ліцензію за допомогою стилізованих коментарів.</p>
+
+<p>Нарешті, нам потрібно змінити вільні браузери так, щоб вони виявляли і
+блокували невільні нетривіальні програми на мові JavaScript на сторінках
+сайтів. Програма <a href="/software/librejs/">LibreJS</a> виявляє невільні
+нетривіальні програми на JavaScript на сторінках, які ви відвідуєте, і
+блокує їх. LibreJS&nbsp;&mdash; це доповнення до IceCat, а також доступна як
+доповнення до Firefox.</p>
+
+<p>Користувачам браузера потрібен також зручний механізм для вказівки програм,
+які потрібно використовувати <em>замість</em> програм на певній
+сторінці. (Зазначені програми можуть бути повною заміною або тільки зміненою
+версією вільних програм з тієї сторінки.) Greasemonkey наближається до
+цього, але не зовсім, тому що не гарантує, що програма зі сторінки буде
+змінена перед тим, як ця програма починає виконуватися. Можна
+використовувати локальний проксі-сервер, але це дуже непрактично для
+реального вирішення. Нам потрібно побудувати рішення, яке буде надійним і
+зручним, так само як і сайти для обміну модифікаціями. Проект GNU хотів би
+рекомендувати сайти, виділені тільки для вільних змін.</p>
+
+<p>Ці особливості будуть дозволяти програмі на JavaScript зі сторінок сайту
+бути по-справжньому вільною у практичному сенсі. JavaScript більше не буде
+особливою перешкодою на шляху до нашої свободи&nbsp;&mdash; не більше, ніж C
+і Java зараз. Ми зможемо відкидати і навіть замінювати невільні нетривіальні
+програми на мові JavaScript точно так само, як ми відкидаємо і замінюємо
+невільні пакети, запропоновані для встановлення звичайним чином. Тоді ми
+зможемо почати кампанію по звільненню JavaScript на сайтах.</p>
+
+<p>А поки виконувати невільну програму на JavaScript допустимо в одному
+випадку: якщо це потрібно, щоб надіслати скаргу операторам сайту і
+повідомити їм, що їм слід звільнити або видалити програми на JavaScript з
+цього сайту. Будь ласка, сміливо вмикайте тимчасово JavaScript, щоб зробити
+це&nbsp;&mdash; але не забудьте вимкнути його після цього. </p>
+
+<!-- any links that used to point to the appendices should point to
+ free-your-javascript.html instead. -->
+<blockquote>
+<p>Веб-майстри: існує <a
+href="/software/librejs/free-your-javascript.html">декілька способів вказати
+ліцензію програми на JavaScript</a> на сайті.</p>
+</blockquote>
+
+<p><strong>Подяки:</strong> Безмежно вдячний <a
+href="/people/people.html#mattlee">Мету Лі</a> та <a
+href="http://ejohn.org">Джону Резіку</a> за їхню допомогу у визначенні
+запропонованого нами критерію, і Дейвіду Парунакяну, який допоміг звернути
+мою увагу на цю проблему.</p>
+
+<div class="translators-notes">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
+ </div>
+</div>
+
+<!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.uk.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Будь ласка, надсилайте загальні запити фонду та GNU за адресою <a
+href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Наявні також <a
+href="/contact/">інші способи зв'язку</a> з фондом. Звіти про непрацюючі
+посилання і інші виправлення чи пропозиції можна надсилати за адресою <a
+href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
+
+<p>
+<!-- TRANSLATORS: Ignore the original text in this paragraph,
+ replace it with the translation of these two:
+
+ We work hard and do our best to provide accurate, good quality
+ translations. However, we are not exempt from imperfection.
+ Please send your comments and general suggestions in this regard
+ to <a href="mailto:web-translators@gnu.org">
+
+ &lt;web-translators@gnu.org&gt;</a>.</p>
+
+ <p>For information on coordinating and submitting translations of
+ our web pages, see <a
+ href="/server/standards/README.translations.html">Translations
+ README</a>. -->
+Ми намагалися зробити цей переклад точним та якісним, але виключити
+можливість помилки ми не можемо. Надсилайте, будь ласка, свої зауваження і
+пропозиції щодо перекладу за адресою <a
+href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.
+</p><p>Відомості з координації та пропозицій перекладів наших статей див. у
+<a href="/server/standards/README.translations.html">&ldquo;Посібнику з
+перекладу&rdquo;</a>.</p>
+</div>
+
+<!-- Regarding copyright, in general, standalone pages (as opposed to
+ files generated as part of manuals) on the GNU web server should
+ be under CC BY-ND 4.0. Please do NOT change or remove this
+ without talking with the webmasters or licensing team first.
+ Please make sure the copyright date is consistent with the
+ document. For web pages, it is ok to list just the latest year the
+ document was modified, or published.
+
+ If you wish to list earlier years, that is ok too.
+ Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
+ years, as long as each year in the range is in fact a copyrightable
+ year, i.e., a year in which the document was published (including
+ being publicly visible on the web or in a revision control system).
+
+ 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 Річард Столмен</p>
+
+<p>Ця сторінка доступна на умовах <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/4.0/deed.uk"> ліцензії
+Creative Commons Attribution-NoDerivatives (<em>Із зазначенням
+авторства&nbsp;&mdash; Без похідних творів</em>) 4.0 Міжнародна</a>.</p>
+
+<!--#include virtual="/server/bottom-notes.uk.html" -->
+<div class="translators-credits">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
+Підтримка українського перекладу: Андрій Бандура
+(andriykopanytsia@gmail.com)</div>
+
+<p class="unprintable"><!-- timestamp start -->
+Оновлено:
+
+$Date: 2018/12/15 13:45:47 $
+
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>