diff options
Diffstat (limited to 'talermerchantdemos/blog/articles/uk/javascript-trap.html')
-rw-r--r-- | talermerchantdemos/blog/articles/uk/javascript-trap.html | 296 |
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>Не виключено, що ви запускаєте невільні програми на своєму +комп'ютері кожен день, навіть не усвідомлюючи цього з вашого +браузера.</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>Багатьом користувачам відомо, що це питання стосується модулів, які браузери +пропонують встановити, бо вони можуть бути вільними або невільними. Але +існують інші невільні програми, які браузери виконують, навіть не питаючи +вас і не кажучи вам про це це програми, на які посилаються або +які містять сторінки сайту. Ці програми найчастіше написані на мові +JavaScript, хоча використовуються й інші мови.</p> + +<p>JavaScript (офіційно званий “ECMAScript”, але мало хто вживає цю +назву) колись застосовували для дрібних надмірностей на сторінках Інтернету, +таких, як цікаві, але несуттєві деталі відображення і навігації. Було +допустимо розглядати їх просто як доповнення до розмітки HTML, а не як +справжні програми; вони не становили значущої теми для обговорення. </p> + +<p>Багато сайтів досі використовують JavaScript таким чином, але деякі +застосовують його для великих програм, які вирішують серйозні +завдання. Наприклад, “Google Docs” встановлює на вашій машині +програму на JavaScript, що займає півмегабайта в стислому вигляді, який ми +називаємо “Obfuscript” (заплутаний сценарій), тому що там немає +коментарів і майже немає пропусків, а назви методів складаються з однієї +літери. Вихідний текст програми це форма, бажана для зміни +програми; стиснутий текст не є вихідним кодом, і справжній вихідний код +недоступний користувачеві.</p> + +<p>Багато з цих програм не тільки невільні, вони ще й шкідливі, бо що <a +href="http://github.com/w3c/fingerprinting-guidance/issues/8">шпигують за +користувачем</a>.</p> + +<p>Браузери зазвичай не повідомляють вам про те, що вони завантажують програми +на JavaScript. В деяких браузерах є спосіб повністю вимкнути JavaScript, але +навіть якщо ви знайомі з цією проблемою, вам було б достатньо важко +розпізнати змістовні невільні програми і заблокувати їх. Однак навіть у +спільноті вільного програмного забезпечення більшість користувачів не знає +про цю проблему; мовчання браузерів не виставляє її напоказ.</p> + +<p>Є можливість зробити програму на JavaScript вільною, поширюючи вихідний код +за ліцензією вільних програм. Якщо програма самостійна — якщо її +робота і призначення не залежать від сторінки, на якій вона +використовується чудово; ви можете зберегти її на своїй машині, +змінити її і відкрити в браузері, щоб працювати з нею. Але так зазвичай не +роблять.</p> + +<p>Зазвичай програми на JavaScript призначені для роботи з конкретною сторінкою +або конкретним сайтом, а робота сторінки залежить від цих програм. Тоді +постає інша проблема: навіть якщо вихідний текст програми доступний, +браузери не пропонують способу працювати зі зміненою вами версією замість +вихідної, коли ви відвідуєте цей сайт. Цей ефект можна порівняти з +тівоїзацією, хоча його в принципі не так важко подолати.</p> + +<p>JavaScript — не єдина мова, на якій написані програми, що +передаються з сайтів користувачеві. Flash підтримує програмування за +допомогою розширеного варіанту мови JavaScript; якщо у нас буде хоча б +досить повноцінний вільний програвач Flash, нам буде необхідно вирішувати +проблему невільних програм на Flash. Silverlight, здається, створює +проблеми, схожі з Flash, тільки ще гірші, бо Microsoft застосовує його як +базу для невільних кодеків. Вільна заміна Silverlight не вирішить проблему +для вільного світу, якщо разом з нею не будуть поставлятися вільні заміни +кодеків.</p> + +<p>Аплети на мові Java теж виконуються в браузері і призводять до схожих +проблем. Взагалі кажучи, будь-яка система аплетів призводить до проблем +цього роду. Наявність вільного середовища для виконання аплетів приводить +нас тільки до постановки цього питання.</p> + +<p>Теоретично можливо програмувати на HTML і CSS, але на практиці ці можливості +обмежені, це незручно; для кожної крихти вимагається неабияка +майстерність. Такі програми повинні бути вільні, але на 2016 рік +CSS не становить серйозної проблеми для користувачів.</p> + +<p>Виник потужний рух, який закликає застосовувати на сайтах тільки вільні +(деякі кажуть “відкриті”) формати і протоколи, тобто ті, +документація на які опублікована і які кожен вільний реалізувати. При +наявності програм на сторінках сайтів це умова необхідна, але не +достатня. Сам по собі JavaScript вільний як формат, і коли його застосовують +на сайті, це не обов'язково погано. Однак, як ми бачили вище, цього не +завжди достатньо. Коли сайт передає програму користувачеві, недостатньо, щоб +програма була написана на документованій мові, яка не викликає труднощів +мовою ця програма теж повинна бути вільна. “Користувачу +передаються тільки вільні програми - це повинно стати частиною критерію +коректної поведінки сайтів.</p> + +<p>Мовчазне завантаження та виконання невільних програм — одна з +кількох проблем, що порушуються “веб-додатками”. Термін +“веб-додаток” був створений, щоб стерти принципову відмінність +між програмами, які передають користувачам, і програмами, які працюють на +сервері. Він може позначати особливу клієнтську програму, яку виконує +браузер; він може позначати особливу серверну програму; він може позначати +особливу клієнтську програму, яка працює поряд із особливою серверною +програмою. Клієнтська і серверна сторони зачіпають різні етичні питання, +навіть якщо вони так тісно пов'язані, що можна стверджувати, що вони +представляють собою частини однієї програми. Ця стаття розглядає тільки +проблему програм на клієнтській стороні. Проблему серверної сторони ми +розглядаємо окремо.</p> + +<p>Як на практиці ми можемо вирішувати проблему нетривіальних невільних програм +на мові JavaScript на сайтах? Перший крок уникати їх виконання.</p> + +<p>Що ми розуміємо під “нетривіальним”? Це поняття широке, тому це +питання створення простого критерію, що дає хороші результати, а не пошук +єдиної вірної відповіді.</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 — це доповнення до IceCat, а також доступна як +доповнення до Firefox.</p> + +<p>Користувачам браузера потрібен також зручний механізм для вказівки програм, +які потрібно використовувати <em>замість</em> програм на певній +сторінці. (Зазначені програми можуть бути повною заміною або тільки зміненою +версією вільних програм з тієї сторінки.) Greasemonkey наближається до +цього, але не зовсім, тому що не гарантує, що програма зі сторінки буде +змінена перед тим, як ця програма починає виконуватися. Можна +використовувати локальний проксі-сервер, але це дуже непрактично для +реального вирішення. Нам потрібно побудувати рішення, яке буде надійним і +зручним, так само як і сайти для обміну модифікаціями. Проект GNU хотів би +рекомендувати сайти, виділені тільки для вільних змін.</p> + +<p>Ці особливості будуть дозволяти програмі на JavaScript зі сторінок сайту +бути по-справжньому вільною у практичному сенсі. JavaScript більше не буде +особливою перешкодою на шляху до нашої свободи — не більше, ніж C +і Java зараз. Ми зможемо відкидати і навіть замінювати невільні нетривіальні +програми на мові JavaScript точно так само, як ми відкидаємо і замінюємо +невільні пакети, запропоновані для встановлення звичайним чином. Тоді ми +зможемо почати кампанію по звільненню JavaScript на сайтах.</p> + +<p>А поки виконувати невільну програму на JavaScript допустимо в одному +випадку: якщо це потрібно, щоб надіслати скаргу операторам сайту і +повідомити їм, що їм слід звільнити або видалити програми на JavaScript з +цього сайту. Будь ласка, сміливо вмикайте тимчасово JavaScript, щоб зробити +це — але не забудьте вимкнути його після цього. </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"><gnu@gnu.org></a>. Наявні також <a +href="/contact/">інші способи зв'язку</a> з фондом. Звіти про непрацюючі +посилання і інші виправлення чи пропозиції можна надсилати за адресою <a +href="mailto:webmasters@gnu.org"><webmasters@gnu.org></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"> + + <web-translators@gnu.org></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"><web-translators@gnu.org></a>. +</p><p>Відомості з координації та пропозицій перекладів наших статей див. у +<a href="/server/standards/README.translations.html">“Посібнику з +перекладу”</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 © 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>Із зазначенням +авторства — Без похідних творів</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> |