# Kısalt — bağlantı kısaltıcı ![Kısalt](../../medya/kisalt.png) Uzun bir adres verin, KabaLang ona 6 harflik bir kod versin; `/k/{kod}` gerçek bir **HTTP 302** ile hedefe yönlendirir ve her tıklamayı sayar. Sayfaların tamamı sunucuda, KabaLang metin işlemleriyle üretilir — şablon motoru yok. ```bash kabalang calistir web/kisalt/kisalt.kbl # → http://127.0.0.1:8472 ``` ## Neyi gösteriyor | Konu | Nerede | |---|---| | Rastgele kısa kod + çakışma döngüsü (`iken ... != "0"`) | `yeni_kod`, `kaydet` | | Gerçek yönlendirme: `web.yanit("", 302).baslik("Location", adres)` | `yonlendir` | | Sunucuda çizilen **SVG çubuk grafik** (son 7 gün) | `yedi_gun_svg` | | Üç tırnaklı metin ile tek yerde tutulan stil | `STIL = """ ... """` | | Özel 404 sayfası: `sunucu.bulunamadi(...)` | sonda | ![İstatistik](../../medya/kisalt-istatistik.png) ## Güvenlik - **SQL enjeksiyonu:** bütün sorgular parametre bağlamalıdır (`?`); kullanıcı verisi asla sorgu metnine eklenmez. - **Açık yönlendirme / betik bağlantısı:** yalnız `http://` ve `https://` adresleri kabul edilir; `javascript:` ya da `file:` ile başlayan bir "bağlantı" 422 ile reddedilir. - **XSS:** hedef adres sayfaya yalnızca **metin** olarak, `web.kacir` ile kaçırılarak basılır; `href` içine giren tek şey bizim ürettiğimiz, yalnız harf-rakamdan oluşan kısa koddur. Veritabanı yolu `KISALT_DB` ile değiştirilebilir (varsayılan `kisalt.db`). İlk açılışta tanıtım için birkaç bağlantı ve geçmiş tıklama oluşturulur. ![Mobil](../../medya/kisalt-mobil.png)