3 poin oleh GN⁺ 2023-09-07 | 1 komentar | Bagikan ke WhatsApp
  • Metode hosting di mana semua file situs web dikompresi menjadi ZIP lalu dienkode dengan Base64 dan ditempelkan setelah domain, sehingga alamat itu sendiri menjadi situs web yang utuh
  • Struktur yang memungkinkan pengiriman situs hanya dengan membagikan alamat tanpa unggah file terpisah atau penyimpanan di server
  • Pemrosesan kompresi ZIP, encoding Base64, dan pembuatan URL dilakukan dengan satu baris perintah, dan jika tidak ada command line, file ZIP juga bisa di-drag
  • Server menyimpan konten di RAM hanya selama 15 menit lalu membuangnya, dan hanya diproses ulang saat tautan yang sama dibuka lagi
  • Open source sebagai bagian dari proyek server web Lwan, dan bahkan bisa dicetak di kertas serta dipindai melalui kode QR

Konsep smolsite

  • Seluruh situs terkandung di dalam URL, sehingga saat alamat dibagikan, situs itu sendiri ikut terkirim
  • Seperti contoh yang terdiri dari dua file (index.html, mylogo.png), beberapa file bisa digabung dan diubah menjadi satu alamat

Cara membuat smolsite

  • Kompres semua file menjadi file ZIP lalu enkode dengan Base64, kemudian sambungkan setelah https://smolsite.zip/

FAQ

  • Jika tidak ada command line

    • Bisa dibagikan dengan menyeret file ZIP ke bilah ungu di bagian bawah
  • Apakah bisa di-host di atas kertas

    • Bisa, dan dengan mengklik kode QR Anda dapat melihat versi yang bisa dicetak dan dipindai
  • Apakah ini open source

  • Cara ZIP diproses di server

    • Konten diproses di server dan disimpan di RAM selama 15 menit lalu dihapus
    • Namun, jika seseorang membuka tautan yang sama lagi, konten akan diproses ulang
  • Penanganan ZIP bomb

    • Data yang telah dideflate dikirim apa adanya ke browser tanpa modifikasi, dan karena tidak ada dekompresi rekursif, ada tingkat perlindungan tertentu
  • Apakah konten bisa diunduh atau dihapus

    • smolsite berusaha semaksimal mungkin mencegah pembagian URL yang persis sama, tetapi karena konten ada di dalam URL, penghapusan total tidak dimungkinkan
      • Pemilik tautan dapat mengekstrak isinya bahkan tanpa smolsite

1 komentar

 
GN⁺ 2023-09-07
Opini Hacker News
  • Keren
    https://smolsite.zip/UEsDBBQAAgAIAFtLJ1daaE7RlwIAAN4EAAAKAAA...
    • Keren. Kalau begitu, TinyURL juga bisa dibuat meng-host situs web
      https://tinyurl.com/dmk9e4m2
    • Saya coba membuat QR code dari tautan ini, dan ternyata benar-benar bukan apa-apa. Keren juga bisa meng-host situs web di dalam QR code
  • Sebagai tambahan untuk yang belum tahu, hal yang sama juga bisa dilakukan dengan data URI
    data:text/html,My%20small%20website
    Look,%20it's%20real!
    Kalau mau, bisa juga dienkode base64 dengan generator data URI. Kelebihan smolsite adalah, jika memakai zip, bisa memuat sedikit lebih banyak dibanding data URI, dan beberapa JavaScript API berfungsi pada URL smolsite tetapi tidak pada data URI
    • Dengan teknik ini, bisa membuat notepad sederhana
      data:text/html,
      Saya menaruhnya di toolbar bookmark dan memakainya
    • Saya tulis dulu sebelum ada yang membuat satu smolsite yang memasang service worker di domain itu lalu mengirim data analitik dari semua smolsite lain ke servernya sendiri
    • Menggunakan Base64 + gzip untuk menyimpan sekitar 5KB teks dalam satu tweet: https://sonnet.io/projects#:~:text=Laconic!%20(a%20Twitter%2...
    • Baik atau buruk, browser web dan penyingkat URL memblokir pembukaan serta redirect data URL, jadi ini terutama berguna untuk bookmark browser saja
      [1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_...
  • Untuk tema memasukkan hal aneh ke URL, ada juga anjing yang direpresentasikan sebagai bilangan prima: https://geonnave.github.io/primg/#17976931348623159077293051...
    • Ini mengejutkan. Fakta bahwa ada yang terpikir untuk merepresentasikan gambar sebagai representasi biner dari bilangan prima saja sudah luar biasa
  • Jawaban saya juga ada di dalam URL
    https://wgx.github.io/anypage/?eyJoMSI6IkhlbGxvIEhOISIsImgyI...
  • Bagus. Ini mengingatkan saya pada nopaste, pastebin yang menyimpan teks di dalam URL dengan mengompresnya menggunakan LZMA lalu mengenkodenya sebagai base64
    [0] https://nopaste.boris.sh/
  • Cara ini mengirim kontennya ke server untuk didekompresi. Yang sedikit lebih rumit, zip bisa dimasukkan ke bagian anchor, lalu responsnya menyediakan kode yang membongkarnya dari sana di sisi klien

Namun, karena bagian anchor tidak dikirim ke server, server tidak bisa memeriksa konten berbahaya yang dikirim lewat cara ini meskipun menginginkannya

  • Aku juga berpikir begitu. Kalau server konten statis memakai routing glob yang mengarahkan semua traffic ke halaman web yang sama, ini bisa dilakukan tanpa anchor. Dengan begitu, hosting jadi benar-benar sederhana
  • Hal-hal seperti ini benar-benar keren, dan menurutku Show HN memang seharusnya terasa seperti ini, alih-alih menjadi alat pemasaran bagi organisasi lain untuk mendorong produknya
    • Jenis seperti ini memang bagus, tapi perlu diingat juga bahwa Y Combinator adalah inkubator startup. Sampai batas tertentu, sepertinya memang wajar orang-orang didorong untuk menunjukkan produk mereka sendiri
    • Aku tidak menganggapnya iklan. Banyak orang datang ke Hacker News untuk melihat apa yang sedang dibuat para hacker, dan aku juga datang karena itu
      Semua tulisan Show HN yang kulihat sejauh ini menarik, dan itu memotivasiku untuk mulai mengerjakan proyekku sendiri lalu memolesnya agar bisa ditunjukkan di sini. Rasanya sangat menyenangkan ketika orang lain mengirimkan karyaku dan aku bisa ikut membicarakannya di sana
    • Apakah kesannya Show HN yang lebih baru dan orisinal tersingkir oleh tulisan yang bernuansa korporat?
    • Karena itu Show HN yang menarik mendapat upvote
  • Dulu aku pernah terpikir ide mengimplementasikan Library of Babel Borges dengan cara seperti ini. Caranya dengan memasukkan semua teks ke URL, mengoptimalkan kata-kata bahasa Inggris memakai encoding yang lebih canggih, lalu menambahkan sistem pencarian untuk menemukan nama sendiri, potongan teks, dan sebagainya
    Tentu pada akhirnya akan terbentur batas panjang URL, tapi bisa juga ditambahkan lapisan yang memungkinkan kurator menggabungkan kumpulan URL untuk membuat teks yang lebih besar. Bisa juga menambahkan sedikit keajaiban LLM agar kumpulan itu dihasilkan otomatis, sehingga menjadi perpustakaan yang berisi bukan hanya semua buku yang sudah ditulis, tetapi juga semua buku yang mungkin ditulis
    Tentu saja ini bercanda. Aku tahu ini mirip dengan mengatakan bahwa Notepad pun sudah berisi semua buku yang pernah ada, hanya saja kita harus mengetikkannya sendiri
  • Ini beberapa karya serupa yang pernah diposting sebelumnya
    https://news.ycombinator.com/item?id=34312546
    https://news.ycombinator.com/item?id=2464213
    • Melihat komentar di tautan pertama tentang Yahoo yang memasukkan objek JSON yang di-encode base64 sangat besar ke dalam URL mengingatkanku pada hal mengerikan yang pernah kulakukan di tempat kerja dulu
      Untuk menghindari membayar biaya modul kalender acara yang mahal ke vendor situs web, aku membuat halaman publik yang membangun kalender dengan menaruh skema event JSON sederhana yang di-encode base64 di atribut data-events. Para staf menggunakannya dengan mengambil data event yang sudah ada dari halaman publik ke halaman privat untuk mengisi awal calendar builder, mengeditnya, lalu menghasilkan potongan kode baru dan menempelkannya ke halaman publik
      Pada dasarnya itu berjalan baik, tapi pada akhirnya sepertinya kami tetap membayar add-on kalender itu
    • Aku tidak bisa menemukan tautan HN-nya sekarang, tapi ini proyek Twitter CDN yang kuposting beberapa tahun lalu. Ini memakai pendekatan data URI base64+gzip
      https://sonnet.io/projects#:~:text=Laconic!%20(a%20Twitter%2...
  • Lucu, tapi mungkin juga ada kegunaan praktisnya. Meski begitu, para hacker harus berhati-hati
    • Aku langsung terpikir ini cara yang bagus untuk mengirim payload berbahaya ke pihak yang tidak menduganya. WAF yang bagus mungkin akan memblokirnya sebagai sesuatu yang mencurigakan, tapi rasanya bisa dilewati dengan beberapa trik