Generator Security.txt

Generator security.txt

Output sesuai RFC 9116, siap dideploy di /.well-known/security.txt.

Informasi Pengungkapan

Deklarasikan URL Canonical untuk security.txt Anda untuk mencegah pemalsuan di jalur lain

Hasil yang Dihasilkan

Buat file security.txt yang sesuai dengan RFC 9116 secara online, berikan saluran pelaporan kerentanan formal kepada peneliti keamanan. Pratinjau waktu nyata, salin sekali klik, deploy langsung ke /.well-known/security.txt untuk mengaktifkannya.

Rekomendasi Terkait

Tentang security.txt: Panduan Lengkap Standar Pengungkapan Keamanan Situs Web

security.txt adalah praktik terbaik keamanan web yang secara resmi distandardisasi oleh IETF (Internet Engineering Task Force) dalam RFC 9116, dirancang untuk memberikan situs web cara yang terpadu dan standar untuk mempublikasikan informasi kontak keamanan. Sederhananya, itu adalah file teks yang ditempatkan di jalur tetap di situs web, memberi tahu peneliti keamanan (peretas topi putih): "Jika Anda menemukan kerentanan keamanan di situs web saya, inilah cara menghubungi kami, inilah kunci publik enkripsi kami, inilah kebijakan pengungkapan kami, kami menyambut laporan Anda."

Sebelum standar security.txt ada, informasi kontak keamanan situs web tidak teratur. Beberapa situs web tidak memiliki informasi kontak keamanan sama sekali, beberapa menguburnya di halaman yang tidak jelas, beberapa hanya mencantumkan email info@ yang tidak dijaga, dan beberapa membutuhkan pencarian melelahkan di LinkedIn untuk menemukan tim keamanan. Ini menyebabkan masalah serius: ketika peneliti keamanan dengan itikad baik menemukan kerentanan, mereka sering kali tidak dapat menemukan saluran yang benar untuk melaporkannya. Hasilnya—banyak kerentanan diam-diam diabaikan, dibiarkan tidak diperbaiki, sampai ditemukan dan dieksploitasi oleh peretas jahat. security.txt lahir untuk menyelesaikan masalah "terakhir mil" ini.

Konsep security.txt pertama kali diusulkan oleh peneliti keamanan EdOverflow dan Yakov Shafranovich pada tahun 2017 dan dengan cepat mendapatkan dukungan industri yang luas. Pada April 2022, security.txt secara resmi disetujui oleh IETF sebagai RFC 9116, menjadi standar keamanan web yang diakui secara internasional. Saat ini, perusahaan teknologi besar seperti Google, GitHub, Meta (Facebook), LinkedIn, dan Cloudflare, serta lembaga pemerintah termasuk Pemerintah Inggris, CISA AS (Badan Keamanan Siber dan Infrastruktur), Pemerintah Prancis, Pemerintah Italia, Pemerintah Belanda, dan Pusat Keamanan Siber Australia, telah mendeploy security.txt di situs web resmi mereka dan secara publik merekomendasikan organisasi lain untuk mengadopsinya.

Desain inti file security.txt sangat sederhana—ini adalah file teks biasa yang terdiri dari baris dalam format "nama-bidang: nilai", mirip dengan format header HTTP. Standar mendefinisikan dua bidang wajib: Contact (informasi kontak keamanan, yang bisa berjumlah banyak) dan Expires (waktu kedaluwarsa file); serta beberapa bidang opsional: Encryption (URL kunci publik enkripsi PGP), Acknowledgments (URL halaman ucapan terima kasih), Policy (URL kebijakan pengungkapan kerentanan), Hiring (URL lowongan keamanan), Canonical (URL kanonik file), Preferred-Languages (bahasa laporan yang didukung), CSAF (URL metadata penyedia Common Security Advisory Framework). Format sederhana ini memudahkan baik manusia maupun mesin untuk mengurai.

Mengapa mendeploy security.txt sangat penting? Pertama, ini menurunkan hambatan pelaporan kerentanan. Peneliti keamanan tidak perlu menghabiskan waktu signifikan untuk menemukan informasi kontak—mereka dapat menemukan saluran pelaporan yang benar dengan satu klik. Kedua, ini menunjukkan sikap proaktif organisasi terhadap keamanan—situs web dengan security.txt pada dasarnya mengatakan "Kami menganggap serius keamanan dan menyambut laporan yang bertanggung jawab." Ketiga, ini mengurangi risiko kerentanan diungkapkan secara publik atau dieksploitasi: dengan saluran formal, peneliti tidak akan memilih untuk mengungkapkan kerentanan secara publik langsung di Twitter atau GitHub karena mereka tidak dapat menghubungi siapa pun. Keempat, dalam banyak persyaratan regulasi industri (keuangan, kesehatan, pemerintah), membangun saluran pengungkapan kerentanan telah menjadi persyaratan kepatuhan.

Ada beberapa detail kunci yang perlu diperhatikan saat mendeploy security.txt. Pertama, jalur harus benar: jalur standar adalah /.well-known/security.txt dan Anda juga dapat menempatkan salinan di /security.txt di direktori root sebagai cadangan. Direktori .well-known di sini adalah direktori "sumber daya dikenal" standar yang didefinisikan oleh RFC 8615, di mana file standar lain seperti robots.txt juga ditempatkan di lokasi terkait. Kedua, harus disajikan melalui HTTPS—HTTP teks biasa dianggap tidak aman. Ketiga, Content-Type harus text/plain, bukan text/html atau jenis lain. Keempat, jangan melakukan pengalihan lintas domain untuk security.txt—jika https://example.com/.well-known/security.txt dialihkan ke https://other-domain.com/security.txt, peneliti dan alat otomatis akan menganggapnya mencurigakan. Kelima, ingat untuk mengatur bidang Expires dan memperbaruinya secara teratur; security.txt yang kedaluwarsa akan dianggap memiliki informasi yang tidak dapat diandalkan.

Bidang Contact adalah bidang terpenting dalam security.txt dan satu-satunya bidang yang benar-benar esensial (Expires juga wajib tetapi hanya stempel waktu). Contact mendukung tiga format URI: mailto: untuk alamat email, https: untuk tautan web (seperti halaman formulir laporan keamanan), tel: untuk nomor telepon. Sangat disarankan untuk menyediakan setidaknya satu email mailto dan satu tautan formulir https—formulir mencegah spam bot, sedangkan email lebih nyaman bagi peneliti untuk mengirim laporan terenkripsi secara langsung. Beberapa kontak dapat dicantumkan di beberapa baris, misalnya secara bersamaan menyediakan email tim keamanan, email kepala keamanan, dan tautan platform kerentanan pihak ketiga.

Meskipun bidang Encryption bersifat opsional, ini sangat penting dalam praktik. Ketika peneliti keamanan menemukan kerentanan kritis (seperti kebocoran data pengguna atau eksekusi kode jarak jauh), mereka sama sekali tidak ingin mengirim detail kerentanan dalam email teks biasa—karena email melewati beberapa server selama transmisi, setiap lompatan dapat disadap. Enkripsi kunci publik PGP (Pretty Good Privacy) adalah standar industri untuk komunikasi aman. Anda hanya perlu membuat pasangan kunci PGP, menempatkan kunci publik di situs web Anda (misalnya di /.well-known/pgp-key.txt) dan memasukkan URL tersebut di bidang Encryption. Peneliti mengenkripsi konten laporan dengan kunci publik Anda dan hanya mereka yang memegang kunci privat yang sesuai yang dapat mendekripsi dan membacanya.

Bidang Policy menautkan ke halaman Kebijakan Pengungkapan Kerentanan (Vulnerability Disclosure Policy, VDP) Anda, yang merupakan kunci untuk membangun kepercayaan peneliti. VDP yang baik harus menyatakan dengan jelas: cakupan pengujian (sistem mana yang dalam cakupan pengujian dan mana yang tidak), metode pengujian yang diizinkan (misalnya pengujian SQL injection/XSS diizinkan tetapi DDoS/rekayasa sosial/mengakses data pengguna nyata dilarang), waktu respons yang dijanjikan (misalnya "Kami akan mengonfirmasi penerimaan laporan dalam 3 hari kerja"), apakah Anda menawarkan hadiah, dan komitmen perlindungan hukum (secara eksplisit menyatakan tidak akan menuntut peneliti dengan itikad baik yang mengikuti aturan). Ada banyak templat VDP yang tersedia secara internasional sebagai referensi dan CISA AS juga menyediakan templat VDP sumber terbuka.

Selain kontak keamanan itu sendiri, security.txt memiliki beberapa bidang "kejutan". Bidang Acknowledgments membangun Security Hall of Fame—berterima kasih secara publik kepada peneliti yang membantu Anda menemukan kerentanan, mengakui karya mereka dan juga berfungsi sebagai pembangunan komunitas. Bidang Hiring adalah desain yang sangat cerdas: orang yang dapat menemukan kerentanan di situs web Anda pada dasarnya adalah bakat keamanan yang sangat baik dan menempatkan tautan rekrutmen di security.txt adalah saluran paling tepat untuk merekrut bakat keamanan. Banyak perusahaan telah merekrut insinyur keamanan yang sangat baik melalui security.txt. Bidang Canonical adalah pertimbangan keamanan—mencegah penyerang memalsukan security.txt Anda di domain lain.

Mengenai kekhawatiran spam yang umum, dalam praktiknya sebagian besar organisasi yang telah mendeploy security.txt melaporkan peningkatan spam yang tidak signifikan. Ini karena: pertama, pengirim spam biasanya tidak mendapatkan alamat email dengan merayapi security.txt; kedua, tautan formulir https:// dapat digunakan alih-alih langsung menempatkan email mailto dan menambahkan CAPTCHA ke formulir dapat sepenuhnya memblokir bot; ketiga, email khusus keamanan (misalnya security@) biasanya memiliki penyaringan spam yang ketat yang dikonfigurasi. Sebaliknya, biaya kehilangan laporan kerentanan kritis karena kurangnya saluran kontak keamanan jauh melebihi potensi peningkatan jumlah spam kecil.

Generator ini dibangun dengan kepatuhan ketat terhadap standar RFC 9116 dan semua format output dinormalisasi: bidang Contact secara otomatis mengenali awalan, bidang Expires menggunakan format waktu UTC standar ISO 8601 dan Preferred-Languages secara otomatis diatur berdasarkan bahasa yang Anda gunakan. Konten yang dihasilkan dapat langsung disalin dan dideploy ke jalur /.well-known/security.txt tanpa modifikasi apa pun. Selain itu, semua konfigurasi dilakukan secara lokal di browser Anda dan tidak pernah dikirim ke server mana pun—informasi kontak keamanan Anda selalu tetap di perangkat Anda. Mendeploy security.txt hanya membutuhkan 5 menit, tetapi saluran komunikasi keamanan yang dibangunnya dapat membantu Anda menghindari insiden keamanan serius di masa depan.

Kasus penggunaan

  • Bangun saluran pelaporan kerentanan formal untuk situs web perusahaan, platform SaaS, dan situs e-commerce dengan mengonfigurasi alamat email Contact dan halaman kebijakan keamanan Policy
  • Publikasikan URL kunci publik enkripsi PGP sehingga peneliti keamanan dapat mengenkripsi pengiriman detail kerentanan sensitif, mencegah intersepsi informasi kerentanan dalam transit teks biasa
  • Atur URL halaman Acknowledgments (Hall of Fame Keamanan) untuk berterima kasih secara publik kepada peneliti yang melaporkan kerentanan, membangun kepercayaan dalam komunitas keamanan
  • Konfigurasikan tautan lowongan kerja Hiring untuk secara proaktif menampilkan informasi rekrutmen tim kepada peneliti keamanan dan peretas topi putih, menarik bakat keamanan
  • Atur stempel waktu Expires untuk mengingatkan tim agar secara teratur meninjau dan memperbarui informasi kontak keamanan, mencegah kontak yang tidak dapat dijangkau karena informasi kedaluwarsa yang membuat kerentanan tidak dilaporkan
  • Konfigurasikan bidang Canonical untuk mendeklarasikan URL kanonik file security.txt Anda, mencegah penyerang memalsukan konten security.txt berbahaya yang menyesatkan peneliti
  • Penuhi persyaratan Kebijakan Pengungkapan Kerentanan (VDP) untuk situs web dengan kepatuhan tinggi di sektor pemerintah, keuangan, dan kesehatan, selaras dengan praktik terbaik regulasi industri
  • Siapkan titik masuk kontak keamanan dengan cepat untuk proyek sumber terbuka, blog pribadi, dan layanan API, tunjukkan sikap serius terhadap masalah keamanan

Cara Penggunaan

  1. Isi alamat email atau URL kontak keamanan di bagian Contact (satu per baris, beberapa baris didukung; email memerlukan awalan mailto:, URL web memerlukan awalan https:)
  2. Konfigurasikan bidang opsional sesuai kebutuhan: Encryption (URL kunci publik PGP), Acknowledgments (halaman Hall of Fame), Policy (halaman kebijakan pengungkapan kerentanan), Hiring (halaman lowongan keamanan), Canonical (URL kanonik file), dll.
  3. Atur waktu kedaluwarsa Expires (waktu UTC format ISO 8601, misalnya 2027-12-31T23:59:59Z; pengaturan yang disarankan adalah 6-12 bulan ke depan)
  4. Pratinjau konten yang dihasilkan secara waktu nyata di sebelah kanan; setelah mengonfirmasi format sudah benar, klik tombol salin
  5. Buat folder .well-known di direktori root situs web Anda dan simpan konten sebagai security.txt di dalamnya
  6. Konfigurasikan server web Anda (Nginx/Apache/Caddy, dll.) untuk memastikan akses melalui https://domain-anda/.well-known/security.txt dengan Content-Type diatur ke text/plain

Fitur

  • Mengikuti standar RFC 9116 terbaru dengan ketat: format output sepenuhnya sesuai dan siap untuk deployment produksi
  • Dukungan multi-Contact: satu entri per baris, email (mailto:), URL web (https:), dan telepon (tel:) semuanya dapat dideklarasikan secara mandiri
  • Cakupan bidang lengkap: bidang wajib Contact dan Expires ditambah semua bidang opsional termasuk Encryption, Acknowledgments, Policy, Hiring, Canonical, dan Preferred-Languages
  • Pembuatan pratinjau waktu nyata: konten security.txt diperbarui secara instan saat Anda mengubah konfigurasi apa pun—WYSIWYG, tidak perlu tombol buat
  • Deklarasi bahasa otomatis: secara otomatis menambahkan bidang Preferred-Languages berdasarkan bahasa halaman saat ini untuk memfasilitasi pelaporan oleh peneliti keamanan internasional
  • Format waktu ISO 8601: bidang Expires menggunakan format waktu UTC standar yang sesuai dengan spesifikasi RFC terbaru
  • Validasi format bidang: secara otomatis memeriksa awalan Contact (mailto:/https:/tel:) dan format waktu Expires untuk mencegah output tidak valid
  • Salin sekali klik: klik untuk menyalin konten lengkap ke papan klip—tempel dan deploy segera
  • Templat contoh bawaan: telah diisi sebelumnya dengan format contoh sehingga Anda dapat dengan cepat mengganti dengan informasi Anda sendiri daripada memulai dari awal
  • Eksekusi lokal frontend murni: konfigurasi diproses secara lokal di browser Anda dan tidak pernah diunggah ke server mana pun
  • Panduan jalur deployment: setelah pembuatan, menunjukkan jalur deployment standar /.well-known/security.txt dan poin konfigurasi server web penting
  • Tanpa tanda air: file yang dihasilkan tidak berisi tanda air atau batasan, cocok untuk penggunaan langsung di situs web komersial

Pertanyaan Umum

Apa itu file security.txt? Mengapa situs web saya membutuhkannya?

security.txt adalah standar keamanan web yang didefinisikan oleh IETF dalam RFC 9116, dirancang untuk memberikan situs web cara standar untuk mempublikasikan informasi kontak keamanan. Ketika peneliti keamanan (peretas topi putih) menemukan kerentanan keamanan di situs web Anda, mereka perlu tahu siapa yang harus dihubungi, cara mengenkripsi laporan mereka, dan kebijakan pengungkapan apa yang harus diikuti. Tanpa security.txt, peneliti mungkin tidak menemukan orang yang tepat dan kerentanan dapat diungkapkan secara publik atau bahkan dieksploitasi secara jahat. Google, GitHub, Facebook/Meta, Pemerintah Inggris, CISA AS, dan pemerintah Prancis, Italia, Belanda, Australia semuanya telah mengadopsi standar ini.

Di mana security.txt harus ditempatkan di situs web?

Sesuai standar RFC 9116, security.txt harus ditempatkan di jalur /.well-known/security.txt (yaitu di folder .well-known di root situs web Anda). Anda juga dapat menempatkan salinan di /security.txt di direktori root sebagai cadangan. Harus dapat diakses melalui HTTPS dan Content-Type harus text/plain. Jangan letakkan di jalur lain, karena alat pemindaian keamanan otomatis tidak akan mengenalinya.

Format kontak apa yang didukung bidang Contact? Bisakah saya memasukkan beberapa kontak?

Tiga format didukung: alamat email harus menggunakan awalan mailto: (misalnya mailto:security@example.com), URL web harus menggunakan awalan https: (misalnya https://example.com/security-report), nomor telepon harus menggunakan awalan tel: (misalnya tel:+1-201-555-0123). Anda dapat memasukkan beberapa kontak, satu per baris—peneliti keamanan dapat memilih saluran yang paling nyaman untuk menghubungi Anda. Disarankan untuk menyediakan setidaknya satu alamat email dan satu tautan formulir web.

Apakah bidang Expires wajib? Apa persyaratan formatnya?

Expires adalah bidang wajib (Contact juga wajib; semua lainnya opsional). Expires menunjukkan waktu kedaluwarsa konten security.txt dan harus menggunakan waktu UTC format ISO 8601, misalnya 2027-12-31T23:59:59Z (Z menunjukkan zona waktu UTC). Disarankan untuk mengatur kedaluwarsa 6-12 bulan setelah pembuatan untuk mengingatkan Anda memperbarui informasi kontak keamanan secara teratur. Setelah kedaluwarsa, alat otomatis akan menganggap informasi file berpotensi tidak valid.

Mengapa bidang Encryption diperlukan? Apakah saya harus menyertakan kunci publik PGP?

Bidang Encryption menunjuk ke lokasi kunci publik PGP Anda. Peneliti keamanan dapat menggunakan kunci publik ini untuk mengenkripsi laporan kerentanan sebelum mengirimnya, mencegah detail kerentanan dicegat selama transmisi email. Ini bukan bidang wajib, tetapi sangat disarankan—karena informasi kerentanan sangat sensitif, email teks biasa dapat disadap oleh ISP, administrator server email, atau penyerang. Anda dapat menempatkan kunci publik PGP Anda di /.well-known/pgp-key.txt dan memasukkan URL tersebut di bidang Encryption.

Apa fungsi bidang Acknowledgments? Mengapa membuat halaman ucapan terima kasih?

Bidang Acknowledgments menunjuk ke halaman ucapan terima kasih publik (juga disebut Security Hall of Fame), yang mencantumkan nama atau ID peneliti yang sebelumnya melaporkan kerentanan keamanan kepada Anda. Ini adalah pengakuan publik atas karya peneliti keamanan dan cara yang efektif untuk menarik lebih banyak peneliti topi putih untuk membantu Anda menemukan kerentanan. Banyak peneliti keamanan memprioritaskan pengujian situs web dengan mekanisme ucapan terima kasih publik, karena itu berarti kontribusi mereka akan diakui.

Konten apa yang harus ditautkan oleh bidang Policy?

Bidang Policy harus menautkan ke halaman Kebijakan Pengungkapan Kerentanan (Vulnerability Disclosure Policy, VDP) Anda. Halaman ini harus menyatakan dengan jelas: aktivitas pengujian apa yang diizinkan (dan mana yang dilarang, misalnya tidak ada DDoS, tidak ada akses ke data pengguna), komitmen waktu respons untuk laporan kerentanan, apakah Anda menawarkan hadiah, dan komitmen hukum Anda untuk penelitian keamanan yang sah (misalnya tidak menuntut peneliti dengan itikad baik). Policy yang jelas memberikan ketenangan hukum kepada peneliti keamanan, meyakinkan mereka bahwa mereka dapat melaporkan masalah kepada Anda dengan aman.

Untuk apa bidang Canonical? Apakah saya perlu mengisinya?

Bidang Canonical mendeklarasikan URL kanonik dari file security.txt itu sendiri. Sebuah situs web mungkin memiliki security.txt yang dapat diakses dari beberapa domain atau jalur (misalnya example.com dan www.example.com); bidang Canonical memberi tahu peneliti URL mana yang merupakan versi resmi dan tepercaya. Ini mencegah penyerang menempatkan security.txt palsu di beberapa jalur untuk menipu peneliti agar mengirim laporan kerentanan kepada penyerang. Disarankan untuk memasukkan URL domain resmi Anda, misalnya https://example.com/.well-known/security.txt.

Apa arti bidang Preferred-Languages?

Preferred-Languages memberi tahu peneliti keamanan bahasa mana yang dapat ditangani oleh tim keamanan Anda untuk laporan, dinyatakan sebagai kode bahasa yang dipisahkan koma (misalnya id, en, zh-CN). Generator ini secara otomatis mengatur bidang ini berdasarkan bahasa halaman yang sedang Anda gunakan. Ini penting karena penelitian keamanan bersifat global—peneliti mungkin berada di negara mana pun, dan menyatakan bahasa yang didukung di muka mencegah kegagalan komunikasi karena hambatan bahasa.

Apakah bidang Hiring juga harus ditempatkan di security.txt?

Ya, Hiring adalah salah satu bidang opsional yang didefinisikan dalam standar RFC 9116. Bidang ini menunjuk ke halaman rekrutmen tim keamanan Anda. Peneliti keamanan sendiri adalah kandidat bakat keamanan yang sangat baik—kemampuan mereka menemukan kerentanan di situs web Anda menunjukkan kemampuan keamanan yang kuat. Menempatkan tautan rekrutmen di security.txt adalah cara yang sangat bertarget untuk merekrut bakat keamanan. Banyak perusahaan terkenal (termasuk Google) menyertakan tautan rekrutmen dalam file security.txt mereka.

Apakah mempublikasikan email kontak keamanan akan menghasilkan spam dalam jumlah besar?

Ini adalah kekhawatiran paling umum di antara operator situs web. Ada beberapa strategi untuk mengurangi spam: pertama, alih-alih mempublikasikan alamat email secara langsung, publikasikan URL formulir web laporan keamanan (awalan https:), di mana Anda dapat menambahkan CAPTCHA untuk memfilter bot; kedua, gunakan alias email khusus keamanan (misalnya security@) dan konfigurasikan penyaringan spam yang kuat; ketiga, berikan enkripsi kunci publik PGP—pengirim spam otomatis tidak menggunakan enkripsi PGP; keempat, nyatakan dengan jelas dalam Policy Anda bahwa Anda hanya menerima laporan terkait kerentanan keamanan. Dalam praktiknya, sebagian besar situs web yang telah menerapkan security.txt melaporkan peningkatan spam yang dapat diabaikan, tetapi peningkatan signifikan dalam laporan kerentanan.

Apakah security.txt perlu ditandatangani secara digital? Bagaimana caranya?

RFC 9116 merekomendasikan (tetapi tidak mewajibkan) penggunaan tanda tangan teks jelas OpenPGP untuk menandatangani security.txt secara digital, sehingga peneliti dapat memverifikasi bahwa file tersebut memang diterbitkan secara resmi oleh situs web dan belum dirusak oleh penyerang. Metodenya adalah dengan menandatangani file dalam mode clearsign menggunakan GPG: gpg --clearsign -o security.txt.sig security.txt, kemudian gunakan konten yang ditandatangani (dimulai dengan -----BEGIN PGP SIGNED MESSAGE-----) sebagai konten security.txt akhir. Namun, ini adalah operasi tingkat lanjut—sebagian besar situs web dapat berfungsi normal tanpa tanda tangan.

Bagaimana saya harus mengonfigurasi Nginx/Apache/Caddy untuk security.txt?

Persyaratan konfigurasi inti: pastikan jalur /.well-known/security.txt dapat diakses, Content-Type mengembalikan text/plain, HTTPS harus digunakan, dan jangan mengalihkan jalur ini (terutama jangan mengalihkan ke domain lain). Nginx dapat menggunakan pencocokan lokasi tepat: location = /.well-known/security.txt { default_type text/plain; alias /path/to/security.txt; }; Apache harus memastikan .htaccess tidak memblokir akses ke direktori .well-known; Caddy dapat menggunakan handle_path untuk menentukan secara langsung.

Situs web saya sangat kecil (blog pribadi/proyek sumber terbuka)—apakah saya masih butuh security.txt?

Sangat disarankan. Terlepas dari ukuran situs web, selama Anda memiliki data pengguna atau menyediakan layanan di internet, kerentanan keamanan mungkin ada. Biaya deployment security.txt sangat rendah—membuatnya dengan alat ini hanya membutuhkan 2 menit dan membutuhkan penempatan satu file. Perusahaan besar seperti Google dan GitHub menggunakannya, dan pengembang individu serta proyek sumber terbuka juga dapat menggunakannya. Ini adalah praktik keamanan yang sangat hemat biaya: biaya hampir nol, tetapi memberikan peneliti dengan itikad baik yang menemukan kerentanan saluran untuk memberi tahu Anda tentang masalah, daripada pergi diam-diam atau mengungkapkan secara publik.

Apa perbedaan antara security.txt dan robots.txt?

Keduanya adalah file teks standar yang ditempatkan di /.well-known/ (atau direktori root), tetapi tujuannya sama sekali berbeda: robots.txt adalah untuk perayap mesin pencari, memberi tahu mereka jalur mana yang tidak boleh dirayapi; security.txt adalah untuk peneliti keamanan, memberi tahu mereka cara menghubungi Anda jika mereka menemukan kerentanan. Satu menargetkan mesin pencari, yang lain menargetkan peneliti keamanan—mereka saling melengkapi tanpa konflik dan dapat di-deploy secara bersamaan.

Pemecahan Masalah

Mengakses /.well-known/security.txt mengembalikan kesalahan 404

Ada tiga penyebab umum: pertama, file tidak ditempatkan di lokasi yang benar—konfirmasikan jalurnya adalah file security.txt di dalam folder .well-known di root situs web (perhatikan bahwa .well-known adalah direktori tersembunyi yang dimulai dengan titik); kedua, konfigurasi server web memblokir akses ke direktori yang dimulai dengan titik (aturan .htaccess Apache atau aturan deny Nginx mungkin memblokir direktori dotfile); ketiga, aturan penulisan ulang Nginx/Apache (seperti mode history routing frontend) meneruskan permintaan ke index.html. Solusi: periksa jalur file dan secara eksplisit tambahkan aturan lokasi untuk /.well-known/security.txt dalam konfigurasi server.

Mengakses security.txt dialihkan ke halaman login atau beranda

Banyak aplikasi satu halaman (SPA) atau situs web dengan autentikasi mengalihkan semua jalur yang tidak cocok ke beranda atau halaman login. Ini mencegah alat otomatis menemukan security.txt. Solusi: tambahkan pengecualian untuk jalur /.well-known/security.txt dalam konfigurasi server sehingga jalur ini mengembalikan konten file secara langsung, melewati perutean SPA atau pemrosesan middleware autentikasi. Ini adalah jebakan paling umum saat mendeploy security.txt.

Browser mengunduh security.txt alih-alih menampilkan konten

Ini terjadi karena server mengembalikan Content-Type yang salah, mungkin diatur ke application/octet-stream atau jenis biner lain alih-alih text/plain. Solusi: atur secara eksplisit Content-Type ke text/plain; charset=utf-8 untuk security.txt dalam konfigurasi server web. Nginx memerlukan default_type text/plain atau add_header Content-Type text/plain; Apache biasanya menangani ini secara otomatis, tetapi jika masalah terjadi Anda dapat menggunakan direktif AddType untuk memaksakannya.

Saya memasukkan email di bidang Contact tetapi mendapatkan kesalahan format

Nilai bidang Contact harus menyertakan awalan URI: alamat email harus dimulai dengan mailto: (misalnya mailto:security@example.com, bukan hanya security@example.com), URL web harus dimulai dengan https: (bukan hanya example.com/security), nomor telepon harus dimulai dengan tel:. Ini secara eksplisit disyaratkan oleh standar RFC 9116—karena bidang Contact mendukung beberapa metode kontak, kurangnya awalan membuat parser tidak mungkin menentukan jenisnya.

Format waktu Expires ditampilkan sebagai tidak benar

Expires harus menggunakan waktu UTC format ISO 8601 dalam format YYYY-MM-DDTHH:MM:SSZ, dengan Z di akhir yang menunjukkan zona waktu UTC (jangan menulis offset zona waktu lokal seperti +07:00). Contoh benar: 2027-12-31T23:59:59Z. Jangan gunakan format lain seperti 2027/12/31, 31 Des 2027 atau 2027-12-31 23:59:59—ini tidak sesuai standar.

Saya sudah mendeploy security.txt tetapi alat deteksi online masih mengatakan tidak dapat menemukannya

Periksa poin-poin berikut: pertama, pastikan akses menggunakan HTTPS (akses HTTP tidak dihitung—RFC mensyaratkan HTTPS); kedua, pastikan akses benar dengan domain www dan non-www (jika situs web Anda ada di kedua versi domain, disarankan untuk mendeklarasikan domain utama di bidang Canonical dan menempatkan security.txt di kedua domain atau mengatur pengalihan 301 yang benar); ketiga, periksa apakah cache CDN telah dibersihkan dari konten lama; keempat, konfirmasikan bahwa server tidak mengembalikan pengalihan (301/302) ke URL lain di jalur security.txt—RFC menetapkan bahwa pengalihan mungkin ditolak oleh alat.

Glosarium

RFC 9116
Dokumen standar security.txt resmi yang diterbitkan oleh IETF, nomor 9116, dirilis pada April 2022. Mendefinisikan semua detail spesifikasi untuk format file security.txt, bidang, jalur deployment, tipe MIME, dll. dan merupakan dasar otoritatif untuk implementasi security.txt.
Direktori .well-known
Direktori standar Web yang didefinisikan oleh RFC 8615, digunakan untuk menyimpan file metadata standar untuk situs web (seperti security.txt, robots.txt, apple-app-site-association, dll.), dengan jalur tetap folder .well-known di bawah direktori root situs web.
VDP (Kebijakan Pengungkapan Kerentanan)
Kebijakan Pengungkapan Kerentanan, yang menjelaskan pengujian keamanan apa yang diizinkan oleh situs web, cara melaporkan kerentanan, komitmen waktu respons, ketentuan perlindungan hukum, dll. Bidang Policy dalam security.txt harus menautkan ke halaman VDP.
Enkripsi PGP/GPG
Pretty Good Privacy/GNU Privacy Guard, standar enkripsi asimetris. Peneliti keamanan menggunakan kunci publik situs web untuk mengenkripsi laporan kerentanan dan hanya situs web yang memegang kunci privat yang dapat mendekripsinya, mencegah detail kerentanan dicegat selama transmisi.
ISO 8601
Format representasi tanggal dan waktu yang dikembangkan oleh Organisasi Internasional untuk Standardisasi; RFC 9116 mensyaratkan bidang Expires menggunakan format ini dalam waktu UTC (misalnya 2027-12-31T23:59:59Z, di mana Z menunjukkan zona waktu UTC).
Hall of Fame (Ucapan Terima Kasih Keamanan)
Halaman ucapan terima kasih yang ditunjuk oleh bidang Acknowledgments, yang secara publik mencatat nama/ID peneliti yang telah melaporkan kerentanan keamanan ke situs web, berfungsi sebagai pengakuan publik atas kontribusi penelitian keamanan.
Peretas Topi Putih
Peneliti keamanan yang menemukan dan mengungkapkan kerentanan keamanan secara bertanggung jawab untuk tujuan dengan itikad baik, berbeda dengan peretas jahat (topi hitam) yang mengeksploitasi kerentanan untuk serangan. security.txt menyediakan saluran komunikasi formal untuk peneliti topi putih.
URL Kanonik
Bidang Canonical dalam security.txt mendeklarasikan URL resmi dari file itu sendiri, mencegah penyerang menempatkan file security.txt palsu di jalur atau domain lain untuk menipu peneliti.

Tabel Referensi Cepat Bidang RFC 9116 security.txt

Berikut adalah semua bidang yang didefinisikan oleh standar security.txt dan persyaratannya:

Nama BidangWajib/OpsionalBeberapa Diizinkan?Format NilaiDeskripsi
Contact✅ Wajib✅ Beberapa baris diizinkanmailto:/https:/tel: URIInformasi kontak keamanan, mendukung format email, URL web, dan telepon
Expires✅ Wajib❌ Tepat satuWaktu UTC ISO 8601Waktu kedaluwarsa konten file; setelah kedaluwarsa, informasi dianggap berpotensi tidak valid
Encryption⬜ Opsional✅ Beberapa baris diizinkanhttps: URIURL lokasi kunci publik PGP untuk mengenkripsi laporan kerentanan sensitif
Acknowledgments⬜ Opsional✅ Beberapa baris diizinkanhttps: URIURL halaman Security Hall of Fame/ucapan terima kasih, berterima kasih secara publik kepada pelapor kerentanan
Policy⬜ Opsional✅ Beberapa baris diizinkanhttps: URIURL halaman Kebijakan Pengungkapan Kerentanan (VDP), menjelaskan aturan pelaporan dan cakupan
Hiring⬜ Opsional✅ Beberapa baris diizinkanhttps: URIURL halaman rekrutmen tim keamanan, merekrut bakat dari peneliti keamanan
Canonical⬜ Opsional✅ Beberapa baris diizinkanhttps: URIURL kanonik dari file security.txt itu sendiri, mencegah pemalsuan
Preferred-Languages⬜ Opsional❌ Tepat satuKode bahasa (dipisahkan koma)Bahasa yang didukung oleh tim keamanan, misalnya id, en, zh-CN
CSAF⬜ Opsional✅ Beberapa baris diizinkanhttps: URIURL metadata penyedia Common Security Advisory Framework

Contoh Konfigurasi security.txt untuk Server Web Umum

Setelah membuat konten security.txt, konfigurasikan jalur akses dan Content-Type yang benar di server Anda:

Server WebPoin Penting KonfigurasiCatatan
Nginxlocation = /.well-known/security.txt { default_type text/plain; alias /var/www/.well-known/security.txt; add_header Cache-Control "public, max-age=3600"; }Gunakan pencocokan tepat (=), tentukan default_type sebagai text/plain untuk mencegah Nginx memperlakukan file txt sebagai biner
ApachePastikan direktori .well-known tidak diblokir oleh aturan Deny .htaccess; cukup letakkan file di folder .well-known di bawah direktori root situs webApache mengembalikan text/plain untuk file .txt secara default, tetapi konfirmasikan bahwa aturan mod_rewrite tidak menulis ulang jalur ini
Caddyhandle_path /.well-known/security.txt { file_server { root /var/www } }Caddy default menggunakan HTTPS dan menangani tipe MIME file txt dengan benar; konfigurasi paling sederhana
Cloudflare Pages/Vercel/NetlifyLetakkan security.txt di public/.well-known/security.txt; setelah deployment, penyajian statis akan memungkinkan akses yang benarPlatform hosting statis biasanya menangani Content-Type yang benar secara otomatis; konfirmasikan bahwa platform tidak mengabaikan direktori .well-known ketika dimulai dengan titik
CDN/Reverse ProxyPastikan CDN atau WAF tidak memblokir atau menyimpan cache security.txt terlalu lama; pengaturan Cache-Control yang disarankan adalah max-age=3600 (1 jam)Ingat untuk membersihkan cache CDN setelah memperbarui security.txt, jika tidak peneliti mungkin melihat versi lama

Privacy & Security

Semua operasi konfigurasi dalam generator ini berjalan sepenuhnya secara lokal di browser Anda. Tidak ada informasi yang Anda masukkan—email kontak keamanan, URL kunci PGP, tautan lowongan kerja, atau data lainnya—yang dikirim ke server mana pun, juga tidak dikumpulkan atau disimpan. Semua konten input segera dihapus ketika halaman diperbarui atau ditutup. Konten file security.txt yang dihasilkan hanya ada di papan klip Anda dan di server yang Anda deploy; GeekFormat tidak menyimpan salinan apa pun.