diff options
Diffstat (limited to 'talermerchantdemos/blog/articles/tr/javascript-trap.html')
-rw-r--r-- | talermerchantdemos/blog/articles/tr/javascript-trap.html | 333 |
1 files changed, 333 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/tr/javascript-trap.html b/talermerchantdemos/blog/articles/tr/javascript-trap.html new file mode 100644 index 0000000..307fcb7 --- /dev/null +++ b/talermerchantdemos/blog/articles/tr/javascript-trap.html @@ -0,0 +1,333 @@ +<!--#set var="ENGLISH_PAGE" value="/philosophy/javascript-trap.en.html" --> + +<!--#include virtual="/server/header.tr.html" --> +<!-- Parent-Version: 1.90 --> + +<!-- This file is automatically generated by GNUnited Nations! --> +<title>JavaScript Tuzağı</title> + +<!--#include virtual="/philosophy/po/javascript-trap.translist" --> +<!--#include virtual="/server/banner.tr.html" --> +<h2>JavaScript Tuzağı</h2> + +<p>yazan <a href="http://www.stallman.org/">Richard Stallman</a></p> + +<p><strong>Bilgisayarınızda web tarayıcınız aracılığıyla her gün farkında +olmadan özgür olmayan programlar çalıştırıyor olabilirsiniz.</strong></p> + +<!-- any links that used to point to the appendices should point to + free-your-javascript.html instead. --> +<blockquote> +<p>Web yöneticileri: Bir web sitesindeki JavaScript programlarının lisansını +belirtmenin <a href="/software/librejs/free-your-javascript.html">birkaç +yolu</a> vardır.</p> +</blockquote> + +<p>Özgür yazılım topluluğunda <a +href="/philosophy/free-software-even-more-important.html">özgür olmayan +herhangi bir programın kullanıcısına</a> kötü davrandığı fikri tanıdık +geliyor. Bazılarımız bilgisayarlarımızdaki tüm özel mülk yazılımları +reddederek özgürlüğümüzü savunuyoruz. Diğerleri özgür olmama durumunu +programa karşı bir darbe olarak kabul eder.</p> + +<p>Pek çok kullanıcı, bu sorunun tarayıcıların kurmayı önerdiği eklentiler için +geçerli olduğunun farkındadır, çünkü bu eklentiler özgür olabilirler de +olmayabilir de. Ancak tarayıcılar; size sormadıkları, hatta size hiç söz +etmedikleri başka özgür olmayan programları da çalıştırırlar, web +sayfalarının doğrudan veya bağlantı olarak içerdiği programlar. Bu +programlar çoğunlukla JavaScript ile yazılmış olsa da, diğer diller de +kullanılabilir.</p> + +<p>JavaScript (resmî olarak ECMAScript olarak adlandırılır ancak bu adı +kullanan azdır); bir zamanlar web sayfalarındaki sevimli ama önemsiz gezinme +ve görüntüleme özellikleri gibi küçük süsler için kullanılırdı. Bunları +gerçek yazılım olarak değil, yalnızca HTML dilinin uzantıları olarak kabul +etmek ve konuyu takmamak makbuldu.</p> + +<p>Bazı siteler hâlâ bu şekilde JavaScript kullansa da, çoğunluğu daha büyük +işler yapan büyük programlar için kullanıyor. Örneğin; Google Dokümanlar +tarayıcınıza Obfuscript diyebileceğimiz sıkıştırılmış bir biçimde yarım +megabaytlık bir JavaScript programı kurmaya çalışır. Bu sıkıştırılmış biçim, +kaynak kodundan, kodu okunabilir hâle getiren ek boşlukları ve anlaşılabilir +hâle getiren açıklayıcı yorumları silerek ve koddaki her anlamlı ismi keyfi +bir kısa adla değiştirerek yapılır, böylece sonuçta ne anlama geldiğini +anlayamayız.</p> + +<p><a href="/philosophy/free-sw.html">Özgür yazılımın</a> anlamının bir +parçası, kullanıcıların programın kaynak koduna (planına) +erişebilmeleridir. Bir programın kaynak kodu; yardımcı aralıklar, açıklayıcı +yorumlar ve anlamlı adlar dahil olmak üzere programcıların değiştirmesi için +tercih edilen biçim anlamına gelir. Sıkıştırılmış kod; kaynak kodu yerine +sahte, işe yaramaz bir alternatiftir; bu programların gerçek kaynak kodu +kullanıcılar tarafından kullanılamaz, bu yüzden kullanıcılar bunu anlayamaz; +bu nedenle programlar özgür değildir.</p> + +<p>Özgür olmamaya ek olarak bu programların birçoğu <em>kötücül yazılımdır</em> +çünkü <a +href="http://github.com/w3c/fingerprinting-guidance/issues/8">kullanıcıyı +gizlice gözetlerler</a>. Daha da kötüsü, bazı siteler, <a +href="https://freedom-to-tinker.com/2017/11/15/no-boundaries-exfiltration-of-personal-data-by-session-replay-scripts/">sayfaya +bakan kullanıcının eylemlerini</a> kaydeden hizmetleri +kullanırlar. Hizmetler, söylendiğine göre, web sitesinin almaması gereken +bazı hassas verileri hariç tutmak için kayıtları “yeniden +düzenliyor”. Ancak bu güvenilir bir şekilde çalışsa bile bu +hizmetlerin tüm amacı web sitesine aslında erişmemesi gereken kişisel +veriler vermektir.</p> + +<p>Tarayıcılar normalde JavaScript programlarını ne zaman yüklediklerini size +söylemez. Bazı tarayıcılarda JavaScript'i tamamen devre dışı bırakmanın bir +yolu vardır ancak bu sorunun farkında olsanız bile anlaşılması zor olan +özgür olmayan programları tanımlamanız ve engellemeniz büyük zorluklar +doğuracaktır. Bununla birlikte özgür yazılım topluluğunda bile çoğu +kullanıcı bu sorunun farkında değildir; tarayıcıların sessizliği onu gizleme +eğilimindedir.</p> + +<p>Kaynak kodunu özgür bir yazılım lisansı altında dağıtarak bir JavaScript +programını özgür yazılım olarak yayımlamak mümkündür. Program kendi kendine +yetiyorsa, eğer işleyişi ve amacı içeri girdiği sayfadan bağımsızsa, bu iyi; +makinenizdeki bir dosyaya kopyalayabilir, değiştirebilir ve çalıştırmak için +bir tarayıcıyla bu dosyayı ziyaret edebilirsiniz. Ancak bu alışılmadık bir +durum.</p> + +<p>Genelde JavaScript programlarının belirli bir sayfa veya siteyle çalışması +amaçlanmıştır ve sayfa veya site bunların çalışmasına bağlıdır. Ardından +başka bir problem ortaya çıkıyor: Programın kaynağı mevcut olsa bile +tarayıcılar bu sayfayı veya siteyi ziyaret ederken değiştirilmiş +versiyonunuzu orijinal yerine çalıştırmak için bir yol sunmuyor. Prensipte +üstesinden gelmek çok zor olmasa da etki tivoizasyon ile +karşılaştırılabilir.</p> + +<p>JavaScript, web sitelerinin kullanıcıya gönderilen programlar için +kullandığı tek dil değildir. Flash, JavaScript'in genişletilmiş bir varyantı +aracılığıyla programlamayı destekler; yeterince eksiksiz bir özgür Flash +oynatıcımız olsa bile, özgür olmayan Flash programları ile ilgilenmemiz +gerekiyor. Silverlight'in Flash'a benzer bir sorun yaratması muhtemel +görünüyor, belki de daha da kötüsü, çünkü Microsoft bunu özgür olmayan kod +çözücüler için bir platform olarak kullanıyor. Silverlight için özgür bir +alternatif, normalde özgür alternatif kod çözücüleriyle birlikte gelmediği +sürece, özgür dünyanın işine yaramaz.</p> + +<p>Java uygulamacıkları da tarayıcıda çalışır ve benzer sorunları ortaya +çıkarır. Genel olarak herhangi bir uygulamacık sistemi bu tür bir sorun +taşır. Bir uygulamacık için özgür bir yürütme ortamına sahip olmanın bize +yararı ancak sorunla karşılaştırmak olur.</p> + +<p>Salt HTML ve CSS ile programlama teorik olarak mümkün olsa da, uygulamada bu +yetenek sınırlıdır ve sakıncalıdır; sadece bir şeyi yapmak için etkileyici +bir hack. Bu tür programlar özgür olmalı, fakat CSS 2019 itibareiyle +kullanıcıların özgürlüğü için ciddi bir sorun değil.</p> + +<p>Web sitelerinin yalnızca özgür olan (bazıları "açık" olduğunu +söylüyor), yani belgelendirmeleri yayınlanan ve gerçekleştirimlerinin özgür +olduğu biçimleri ve protokolleri aracılığıyla iletişim kurmasını isteyen +güçlü bir hareket gelişti. Ancak web sayfalarındaki JavaScript +programlarının varlığı bu ölçütü yetersiz kılmaktadır. JavaScript dilinin +kendisi bir biçim olarak özgürdür ve bir web sitesinde JavaScript kullanımı +mutlaka kötü olmak zorunda değildir. Ancak, yukarıda gördüğümüz gibi, +JavaScript programı özgür değilse, kötü de olabilir. Site kullanıcıya bir +program gönderdiğinde programın belgelenmiş ve engelsiz bir dilde yazılması +yeterli değildir; yazılan bu program da özgür olmalı. “Kullanıcıya +yalnızca özgür programları ileten” etik bir web sitesi için ölçütün +bir parçası haline gelmelidir.</p> + +<p>Özgür olmayan programların sessizce yüklenmesi ve çalıştırılması, "web +uygulamalarının" ortaya çıkardığı çeşitli sorunlardan sadece +biridir. "Web uygulaması" terimi, kullanıcılara sunulan yazılım +ile sunucu üzerinde çalışan yazılımlar arasındaki temel ayrımı göz ardı +etmek için tasarlanmıştır. Tarayıcıda çalışan özelleşmiş bir istemci +programı kastediliyor olabilir; özelleşmiş sunucu yazılımı kastediliyor +olabilir; özelleşmiş sunucu yazılımı ile birlikte çalışan özelleşmiş bir +istemci programı kastediliyor olabilir. İstemci ve sunucu tarafları; farklı +bir etik sorun ortaya çıkarmaktadır, sıkı bir şekilde entegre olmuş olsalar +bile tartışmasız tek bir programın bölümlerini oluştururlar. Bu makale +yalnızca istemci tarafındaki yazılım sorununu ele almaktadır. Sunucu +sorununu ayrıca ele alıyoruz.</p> + +<p>Pratik açıdan web sitelerinde anlaşılması zor olan özgür olmayan JavaScript +programları sorununu nasıl çözebiliriz? İlk adım, onu çalıştırmaktan +kaçınmaktır.</p> + +<p>"Anlaşılması zor olan" derken neyi kastediyoruz? Bu bir seviye +meselesidir, bu yüzden doğru bir cevap bulmak yerine iyi sonuçlar veren +basit bir ölçüt tasarlama meselesidir.</p> +<p> +Şu anki ölçütümüz, aşağıdaki koşullardan herhangi birini içeren bir +JavaScript programını anlaşılması zor bir program olarak değerlendirmektir:</p> + +<ul> + <li>harici bir komut dosyası olarak adlandırılır (başka bir sayfadan).</li> + + <li>50'den fazla eleman uzunluğunda bir dizi tanımlar.</li> + + <li>ilkel bir tipten başka bir şey çağıran adlandırılmış bir varlık (fonksiyon +veya metot) tanımlar.</li> + + <li>üçten fazla koşullu yapı ve döngü yapısı içeren adlandırılmış bir varlık +tanımlar.</li> + + <li>adlandırılmış tanımların dışındaki kod; sayfada daha fazla tanımlanan +ilkellerden ve fonksiyonlardan başka bir şey çağırır.</li> + + <li>adlandırılmış tanımların dışındaki kod; toplamda üçten fazla koşullu yapı ve +döngü yapısı içerir.</li> + + <li><b>eval</b> kullanır.</li> + + <li>Ajax çağrıları yapar.</li> + + <li><b><em>nesne</em>[<em>özellik</em>]</b> gibi, dinamik nesne özelliği erişimi +için köşeli parantez gösterimini kullanır.</li> + + <li>DOM'u değiştirir.</li> + + <li>programı yorumlamadan analiz etmesi zor olan ya da bu tür yapıları kullanan +betiklerle yüklü dinamik JavaScript yapılarını kullanır. Özellikle, bir +karakter dizisinden başka bir yapıyı belirli metotlarla kullanma +(<b>Obj.write</b>, <b>Obj.createElement</b> ve diğerleri).</li> +</ul> + +<p>JavaScript kodunun özgür olup olmadığını nasıl anlarız? <a +href="/licenses/javascript-labels.html">Ayrı bir makalede</a> bir web +sayfasındaki anlaşılması zor olan bir JavaScript programının kaynak kodunun +bulunduğu URL'yi ve biçimlendirilmiş yorumları kullanarak lisansını +belirtebileceği bir yöntem öneriyoruz.</p> + +<p>Son olarak web sayfalarındaki anlaşılması zor olan özgür olmayan +JavaScript'i tespit etmek ve engellemek için özgür tarayıcıları +değiştirmemiz gerekiyor. <a href="/software/librejs/">LibreJS</a> programı; +ziyaret ettiğiniz sayfalarda özgür olmayan, anlaşılması zor olan bir +JavaScript'i tespit eder ve engeller. LibreJS, IceCat'a dâhil edilmiştir ve +Firefox için bir eklenti olarak mevcuttur.</p> + +<p>Tarayıcı kullanıcılarının ayrıca belirli bir sayfada JavaScript +<em>yerine</em> kullanılacak JavaScript kodunu belirtmek için uygun bir +vasıtaya ihtiyacı vardır. (Belirtilen kod, bu sayfadaki özgür JavaScript +programının tamamen değiştirilmesi veya değiştirilmiş bir sürümü olabilir.) +Greasemonkey, bunu yapmaya en yakın eklentidir, ancak tam olarak bunu +yapamaz, çünkü bu program çalıştırılmadan önce bir sayfadaki JavaScript +kodunu değiştirmeyi garanti etmez. Yerel bir vekil sunucu kullanmak işe +yarar ancak bu da gerçek bir çözüm olmak için çok zahmetli. Güvenilir ve +uygun bir çözüm ve değişiklikleri paylaşmak için siteler oluşturmak +gerekir. GNU Projesi sadece özgür değişikliklere adanmış siteleri önermek +ister.</p> + +<p>Bu özellikler, bir web sayfasına dâhil olan bir JavaScript programının +gerçek ve pratik anlamda özgür olmasını mümkün kılacaktır. JavaScript artık +özgürlüğümüz için belirgin bir engel teşkil etmeyecek, şimdi C ve Java'nın +olduğundan daha fazla değil en azından. Kurulum için teklif edilen özgür +olmayan paketleri reddettiğimiz gibi, özgür olmayan, anlaşılması zor olan +JavaScript programlarını reddebilecek ve hatta değiştirebileceğiz. Böylece +web sitelerinin Javascript'lerini özgürleştirme kampanyamız da başlayabilir.</p> + +<p>Bu arada özgür olmayan bir JavaScript programını çalıştırmanın kabul +edilebilir olduğu bir durum var: Web sitesi operatörlerine sitedeki +JavaScript kodunu özgürleştirmeleri veya kaldırmaları gerektiğini söyleyen +bir şikayet göndermek. Lütfen bunu yapmak için geçici olarak JavaScript'i +etkinleştirmekten çekinmeyin, ancak elbette daha sonra tekrar devre dışı +bırakmayı unutmayın.</p> + +<!-- any links that used to point to the appendices should point to + free-your-javascript.html instead. --> +<blockquote> +<p>Web yöneticileri: Bir web sitesindeki JavaScript programlarının lisansını +belirtmenin <a href="/software/librejs/free-your-javascript.html">birkaç +yolu</a> vardır.</p> +</blockquote> + +<p><strong>Teşekkürler:</strong> <a href="/people/people.html#mattlee">Matt +Lee</a> ve <a href="http://ejohn.org">John Resig</a>'e önerdiğimiz ölçütleri +tanımlamamıza yardım ettikleri için ve sorunu dikkatime sunduğu için David +Parunakian'a teşekkür ediyorum.</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.tr.html" --> +<div id="footer"> +<div class="unprintable"> + +<p>Lütfen FSF ve GNU ile ilgili sorularınızı <a +href="mailto:gnu@gnu.org"><gnu@gnu.org></a> adresine iletin. FSF ile +iletişim kurmanın <a href="/contact/">başka yolları</a> da vardır. Lütfen +çalışmayan bağlantıları ve başka düzeltmeleri veya önerilerinizi <a +href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a> adresine +gönderin.</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>. --> +Çevirilerimizde bulmuş olabileceğiniz hataları, aklınızdaki soru ve +önerilerinizi lütfen <a +href="mailto:web-translators@gnu.org">bize bildirin</a>.</p><p>Bu +yazının çeviri düzenlemesi ve sunuşu ile ilgili bilgi için lütfen <a +href="/server/standards/README.translations.html">Çeviriler BENİOKU</a> +sayfasına bakın. Bu sayfanın ve diğer tüm sayfaların Türkçe çevirileri +gönüllüler tarafından yapılmaktadır; Türkçe niteliği yüksek bir <a +href="/home.html">www.gnu.org</a> için bize yardımcı olmak istiyorsanız, <a +href="https://savannah.gnu.org/projects/www-tr">çalışma sayfamızı</a> +ziyaret edebilirsiniz.</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, 2019 Richard Stallman</p> + +<p>Bu sayfa <a rel="license" +href="http://creativecommons.org/licenses/by-nd/4.0/deed.tr">Creative +Commons Alıntı-Türetilemez 4.0 Uluslararası Lisansı</a> altında +lisanslanmıştır.</p> + +<!--#include virtual="/server/bottom-notes.tr.html" --> +<div class="translators-credits"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> +<p><strong>Çeviriye katkıda bulunanlar:</strong></p> +<ul> +<li>The FLOSS Information <a +href="mailto:theflossinformation@gmail.com"><theflossinformation@gmail.com></a>, +2019, 2020.</li> + +</ul></div> + +<p class="unprintable"><!-- timestamp start --> +Son Güncelleme: + +$Date: 2020/04/27 19:08:05 $ + +<!-- timestamp end --> +</p> +</div> +</div> +<!-- for class="inner", starts in the banner include --> +</body> +</html> |