Untuk menggunakan alat Figma pihak ketiga mana pun, Anda membuat Personal Access Token di pengaturan Figma dan menempelkannya ke dalam alat tersebut. Ini adalah hal yang wajib. Setiap integrasi Figma memintanya.
Yang kebanyakan orang tidak benar-benar sadari: token tersebut tidak membaca "satu file." Token itu membaca setiap file yang dapat diakses akun Anda. Setiap file pribadi. Setiap perpustakaan organisasi. Setiap proyek yang dibagikan. Cakupan default PAT Figma adalah seluruh permukaan baca akun Anda.
Bagi desainer individu dengan akun pribadi, itu adalah risiko sedang. Bagi desainer staf di perusahaan dengan perpustakaan desain bersama yang berisi produk yang belum dirilis, aset merek, dan perkakas internal — itu signifikan. Dan bagi desainer tersebut, "Saya menempelkan token Figma saya ke alat yang saya temukan ini" adalah sebuah insiden keamanan.
figmascope dirancang agar insiden itu tidak terjadi.
Apa yang diberikan PAT Figma
Autentikasi API Figma berbasis PAT. Token mengautentikasi sebagai Anda. API tidak memberlakukan pembatasan cakupan per file pada level token — ia memberlakukan akses file berdasarkan izin akun Anda. Jika akun Anda dapat melihat sebuah file, PAT dapat membacanya melalui API.
Cakupan PAT default memberikan akses baca ke:
- Semua file yang Anda buat
- Semua file yang dibagikan kepada Anda
- Semua file dalam proyek dan tim yang Anda ikuti
- Perpustakaan komponen yang dipublikasikan yang digunakan tim Anda
Figma memperkenalkan jenis token yang lebih terbatas pada 2023 — token di mana Anda dapat memilih cakupan mana yang akan diberikan. Namun antarmukanya default ke token luas, dan kebanyakan tutorial memberi tahu Anda untuk membuat token tanpa menentukan cakupan. Dalam praktiknya, sebagian besar PAT yang beredar di riwayat clipboard desainer adalah token baca-penuh.
Model ancaman untuk alat yang menerima PAT
Alat yang menerima PAT Figma dan memiliki backend menghadapi ancaman spesifik: backend menyimpan token Anda (untuk memanggil Figma atas nama Anda), dan penyimpanan tersebut adalah target. Jika backend dikompromikan, setiap PAT yang tersimpan di sana ikut dikompromikan. Jika backend mengalami pelanggaran database, akses Figma setiap pengguna ikut dilanggar.
Ini bukan hipotetis. Pelanggaran penyimpanan token OAuth telah terjadi pada banyak layanan. Polanya adalah: pengguna memberikan akses, layanan menyimpan token, layanan dilanggar, penyerang mengekstrak token, penyerang kini memiliki akses ke semua yang dapat dijangkau token tersebut. Untuk token Figma di perusahaan, "semua yang dapat dijangkau token tersebut" adalah seluruh sistem desain.
Alat berbasis backend harus menyelesaikan masalah ini. Yang bagus melakukannya: enkripsi saat istirahat, token berumur pendek, alur kerja re-auth, pencatatan audit. Menyelesaikannya dengan benar adalah masalah rekayasa keamanan tingkat enterprise. Sebagian besar alat tidak menyelesaikannya dengan benar; mereka hanya belum pernah dilanggar.
Penyimpanan token paling aman adalah tidak ada penyimpanan sama sekali. Jika arsitektur Anda tidak pernah mempertahankan token, tidak ada yang bisa dilanggar. Ini adalah pilihan arsitektur yang dibuat figmascope — dan bukan sekadar fitur, ini adalah seluruh model keamanan.
Arsitektur figmascope
figmascope berjalan sepenuhnya di browser. Tidak ada server backend. Tidak ada database. Tidak ada manajemen sesi, tidak ada akun pengguna, tidak ada lapisan penyimpanan token. Aplikasi ini adalah bundel HTML/CSS/JS statis yang disajikan dari CDN. Saat Anda menggunakannya, komputasi terjadi di tab browser Anda. Tidak ada yang dikirim ke server figmascope karena tidak ada server figmascope.
Alur PAT bekerja sebagai berikut:
- Anda memasukkan PAT Anda di kolom input.
- Nilainya disimpan dalam variabel closure JavaScript — binding
letJS biasa di dalam modul aplikasi. - Nilainya tidak pernah ditulis ke
localStorage. Tidak pernah ditulis kesessionStorage. Tidak pernah disetel sebagai cookie. Tidak pernah ditulis keindexedDB. Tidak pernah dikirim ke URL mana pun selain dua endpoint API Figma. - Saat Anda melakukan ekspor, token diteruskan sebagai header
X-Figma-Tokendalam panggilanfetch()keapi.figma.comdan CDN Figma untuk aset gambar. - Saat Anda menutup atau memuat ulang tab, memori JS dilepaskan. Token hilang.
Ini adalah siklus hidup yang lengkap. Tidak ada persistensi di mana pun. Tidak ada transmisi jaringan kecuali langsung ke Figma.
Penegakan Content Security Policy
Untuk membuat properti "hanya dikirim ke Figma" dapat diberlakukan daripada sekadar dinyatakan, figmascope menerapkan Content Security Policy yang mengunci connect-src ke dua host yang diizinkan:
connect-src 'self'
https://api.figma.com
https://figma-alpha-api.s3.us-west-2.amazonaws.com;
CSP diberlakukan browser. Bahkan jika ada kerentanan injeksi skrip di halaman, browser akan memblokir setiap upaya untuk mengirim token ke host pihak ketiga. Permintaan jaringan ke tujuan lain mana pun gagal di level browser, sebelum meninggalkan mesin.
Ini adalah pertahanan berlapis. Kode aplikasi sudah tidak mengirim token ke tempat lain. CSP membuatnya sehingga kode aplikasi tidak bisa mengirimnya ke tempat lain bahkan jika dicoba.
Jalur pemulihan
Karena token hanya ada di memori, pemulihan sangat mudah: tutup tab. Token hilang. Tidak ada langkah pencabutan, tidak ada "hapus akun," tidak ada "keluar." Tab ditutup = token hilang.
Ini juga merupakan perilaku yang benar dari perspektif keamanan operasional. Jendela kredensial berumur pendek meminimalkan paparan. Anda membuka figmascope, menempelkan PAT, melakukan ekspor, menutup tab. Jendela di mana PAT dapat diakses adalah persis durasi sesi browser tersebut. Bandingkan ini dengan alat backend di mana token Anda mungkin disimpan selama berbulan-bulan, aktif dan dapat diakses, hingga Anda secara eksplisit mencabutnya.
Rekomendasi terlepas dari alat yang digunakan
Bahkan dengan arsitektur in-memory figmascope, kebersihan PAT yang baik tetap penting:
Gunakan token dengan cakupan terbatas. Figma kini mendukung token dengan cakupan eksplisit. Untuk operasi read-only seperti ekspor figmascope, token read-only sudah cukup dan membatasi dampak jika pernah terekspos. Buat token hanya dengan cakupan file_read, bukan cakupan luas default.
Cabut token yang tidak Anda gunakan secara aktif. Pengaturan Figma menampilkan semua PAT aktif. Token yang Anda buat untuk proyek yang sudah selesai harus dicabut. Token yang Anda buat untuk figmascope enam bulan lalu dan belum digunakan sejak saat itu dapat dicabut dan dibuat ulang saat Anda membutuhkannya lagi.
Jangan pernah menempelkan token ke alat dengan backend kecuali Anda telah memverifikasi postur keamanan mereka. Tanyakan: apakah layanan ini memiliki backend? Jika ya, di mana dan bagaimana ia menyimpan token saya? Jika jawabannya tidak memuaskan, atau jika tidak ada jawaban, perlakukan sebagai risiko. Ini berlaku untuk setiap alat Figma, bukan hanya figmascope.
Pengguna enterprise: gunakan akun bersama/layanan jika tersedia. Jika organisasi Anda dapat membuat akun layanan Figma dengan akses read-only ke proyek tertentu, membuat PAT dari akun tersebut daripada akun pribadi Anda membatasi apa yang dapat diakses ke proyek tersebut.
Apa yang tidak kami klaim
Arsitektur browser-only figmascope meminimalkan permukaan serangan untuk pencurian kredensial sisi server. Ini tidak menghilangkan semua kekhawatiran keamanan:
- Ekstensi browser dengan izin luas dapat membaca variabel JavaScript. Jika Anda memiliki ekstensi browser yang tidak tepercaya, ekstensi tersebut merupakan risiko untuk kredensial apa pun yang Anda masukkan ke aplikasi web mana pun.
- Browser yang dikompromikan (malware, XSS di halaman lain yang melarikan diri dari isolasi) berpotensi membaca memori dalam tab, meski sandboxing browser modern membuat akses lintas origin sangat sulit.
- Berbagi layar dan shoulder surfing berada di luar cakupan arsitektur mana pun.
Kami tidak mengklaim ini sebagai pengganti audit keamanan tingkat enterprise. Kami mengklaim: arsitektur ini membuat kelas serangan tertentu — pelanggaran database token sisi server — menjadi tidak mungkin secara struktural dengan menghilangkan servernya. Itu adalah pengurangan permukaan serangan yang berarti, bukan kekebalan total.
Mengapa open source penting di sini
Klaim keamanan tidak ada artinya tanpa verifikasi. figmascope berlisensi MIT dan sumber lengkapnya ada di GitHub. Klaim dalam artikel ini — tidak ada penulisan localStorage, tidak ada transmisi backend, header CSP — semuanya dapat diverifikasi dengan membaca kodenya. App.js menunjukkan tidak ada penulisan ke API penyimpanan browser. File header menunjukkan CSP. Panggilan fetch menunjukkan URL mana yang menerima token.
Jika kami berbohong tentang hal ini, dibutuhkan tiga puluh menit untuk menemukan kebohongannya. Itulah intinya. Open source bukan hanya pilihan lisensi; untuk alat yang menangani kredensial, ini adalah satu-satunya dasar jujur untuk klaim keamanan.
Anda harus memverifikasi alat yang menangani kredensial Anda. Alat yang menolak verifikasi adalah yang perlu dikhawatirkan.
Setelah Anda merasa puas, pergi ke aplikasi figmascope untuk mengekspor context bundle Figma Anda dan gunakan bersama Claude Code atau Cursor.