Bazı şeyler neden kapalı
Dokümantasyonun birkaç yerinde "şuna izin verilmiyor" yazıyor: özel
CSS'te url() yok, menüde javascript: yok,
SVG yüklenemiyor, tablo hücresine style yazılamıyor. Bu
sayfa hepsinin ortak mantığını anlatıyor, çünkü tek tek okununca
keyfi görünüyorlar.
Temel ayrım
Ada'da yazdığın şeyler iki gruba ayrılıyor:
- Sadece görünüşü etkileyenler. Burada neredeyse sınır yok. Blogunu okunmaz hâle getiren bir CSS bile yazabilirsin; zararı sadece sana. Bir hata yaparsan panele girip geri alırsın.
- Okuyucunun tarayıcısında bir şey çalıştıranlar ya da dışarıya istek atanlar. Burası kapalı. Çünkü sonucuna katlanan sen değilsin: blogunu açan herkes.
Kısıtlamaların hepsi bu ikinci gruptan. Amaç seni kısıtlamak değil, senin yazdığın bir şeyin başkasına zarar vermesini engellemek.
Tek tek nedenleri
-
url()ve@import. Dışarıdan font ya da görsel çekmek demek; blogunu açan herkesin tarayıcısı o sunucuya bağlanır ve o sunucu okuyucunun IP adresini görür. Ada'nın "takip yok" iddiası tam burada sessizce delinirdi. Bedeli: özel font kullanamıyorsun. -
javascript:adresleri ve<script>. Blogunu okuyan herkesin tarayıcısında kod çalıştırmanın yolu. Kod çalıştırabilen bir sayfa, okuyucunun ne yaptığını izleyebilir ve onu başka yerlere yönlendirebilir. - SVG dosyaları. Görsel gibi durur ama içine JavaScript gizlenebilir; yukarıdaki maddenin kılık değiştirmiş hâli.
-
Hücrelerde
style. Serbest CSS'i içeriğin herhangi bir yerine sızdırmanın yolu. Hizalama gibi zararsız ihtiyaçlar için dar bir kapı ayrıca açık, bkz. Markdown.
Sessizce mi oluyor
Hayır, ikisi de olabildiğince erken söyleniyor:
- Özel CSS ve menüde kaydetmeye çalıştığında form hata verir ve neyin sorun olduğunu yazar. Yazdığın kaybolmaz.
- Yazı içinde ise izinsiz bir etiket sessizce siliniyor, hata verilmiyor. Sebebi şu: bir yazının kaydedilmesi, içindeki tek bir işaret yüzünden engellenmemeli. Ama sonucu "Önizle" ile kaydetmeden önce görebiliyorsun.
Bu liste büyümez
Kısıtlamalar bir eğilim değil; her biri belirli bir zarara karşılık geliyor. Yeni bir yasak eklemek için o zararın somut olarak gösterilmesi gerekiyor, "ne olur ne olmaz" yeterli bir gerekçe değil. Aynı şekilde, bir kısıtlamayı zarara yol açmadan kaldırmanın bir yolu bulunursa kaldırılıyor.