Konsol: fraktal (paralel şeritli 24-bit Mandelbrot/Julia + yakınlaşma), sudoku (geri izlemeli, canlı animasyon), fatura (JSON → terminal tablosu, PDF ve Excel). Masaüstü: hesap makinesi (işlem önceliği, canlı bağlama), odak (Pomodoro), parola atölyesi (entropi ölçer, SHA-256). Web: pano (Kanban REST API + SQLite), kisalt (302 yönlendirme, SVG istatistik), anket (adres başına tek oy, sunucuda çizilen grafik). Hepsi `kabalang calistir` ile derlenip çalışır; web uygulamaları yalnız 127.0.0.1'i dinler, SQL parametre bağlamalı, HTML çıktısı kaçırılır. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
1.6 KiB
1.6 KiB
Kısalt — bağlantı kısaltıcı
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.
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 |
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://vehttps://adresleri kabul edilir;javascript:ya dafile:ile başlayan bir "bağlantı" 422 ile reddedilir. - XSS: hedef adres sayfaya yalnızca metin olarak,
web.kacirile kaçırılarak basılır;hrefiç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.


