flawopen.com/Direktori/Referensi
Panduan Referensi Keamanan Pengembang
Gunakan referensi ini untuk memeriksa asumsi keamanan pada framework, ORM, autentikasi, aplikasi serverless, dan eksekusi agen AI. Setiap panduan menghubungkan penjelasan dan perbaikan dengan detail teknisnya.
- Claude Code MemoryTrap: peracunan memori AI — flawopen.com
Pengungkapan MemoryTrap dari Cisco: memori persisten Claude Code, perbaikan v2.1.50, dan kontrol keamanan agen.
- Sandbox Agen AI: Container, gVisor, dan microVM
Bandingkan batas isolasi container, gVisor, dan microVM untuk agen AI.
- Pembatasan alat agen AI
Kurangi agensi berlebih pada agen AI dengan alat khusus, otorisasi per pengguna, dan hak minimum.
- Bot PR AI: Cegah SSRF — flawopen.com
Bagaimana teks pull request tak tepercaya dapat memengaruhi tool AI dan cara membatasi izin bot serta akses jaringan.
- Risiko keamanan addJavascriptInterface di Android
Bridge WebView membuka metode native bagi semua frame. Pahami risiko XSS addJavascriptInterface dan isolasi halaman tak tepercaya.
- Perlindungan XSS Angular: default aman dan API bypass
Angular meng-escape teks dan menyanitasi HTML serta URL. Pelajari kapan bypassSecurityTrust* melewati perlindungan dan cara mengaudit sink XSS.
- XSS akibat MIME sniffing: Content-Type dan nosniff
Pelajari cara MIME sniffing mengubah unggahan menjadi dokumen browser, fungsi nosniff, dan cara menyajikan file dengan aman.
- Apakah strncpy() lebih aman daripada strcpy()?
Di C, strncpy() mengurangi satu risiko dari strcpy(), tetapi tidak menjamin terminator null. Pelajari cara memeriksa hasil snprintf dan strlcpy.
- CSP dan output escaping: apakah keduanya diperlukan?
Encoding output sesuai konteks mencegah XSS; CSP membatasi sebagian dampak jika ada celah. Pelajari cara menggabungkan kedua kontrol.
- Token CSRF untuk GET: kapan diperlukan?
GET yang aman tidak boleh mengubah state. Pelajari metode mana yang memerlukan token CSRF dan cara memperbaiki GET lama yang mengubah state.
- CWE vs CVE: apa bedanya?
CWE vs CVE: apa bedanya?: CWE adalah kategori — jenis bug, seperti "SQL Injection" (CWE-89). CVE adalah instansi — satu kemunculan spesifik yang terdokumentasi
- Apakah dangerouslySetInnerHTML di React aman?
React melakukan escape pada teks JSX, tetapi dangerouslySetInnerHTML menafsirkan HTML. Tinjau titik XSS ini dan tampilkan rich text dengan aman.
- Dependency Confusion: risiko dan pertahanan
Pelajari bagaimana sumber paket yang ambigu memasukkan dependensi tak terduga dan cara kebijakan registry, lockfile, serta CI mengurangi risikonya.
- Django ORM SQL Injection: pola aman
Django QuerySet memparameterisasi nilai. Pelajari risiko raw SQL, ekspresi dinamis, dan cara meninjau struktur kueri.
- Paparan Socket Docker: Risiko dan Perlindungan
Socket daemon Docker yang terbuka dapat memberikan kewenangan setingkat daemon. Pahami batasannya, risiko kapabilitas, dan konfigurasi kontainer yang lebih aman.
- Injeksi SQL Doctrine ORM: kueri aman
Ikat nilai DQL dan SQL dengan parameter. Pelajari risiko pada ekspresi QueryBuilder dan cara mengizinkan pengurutan dinamis lewat allow-list.
- Apakah DOMPurify cukup untuk mengamankan innerHTML?
DOMPurify melindungi rich HTML pada sink yang tepat. Pelajari batas konteks, perubahan setelah sanitasi, Trusted Types, dan pemeriksaan produksi.
- .NET BinaryFormatter: Risiko dan Migrasi
Microsoft menyatakan BinaryFormatter tidak dapat dibuat aman. Pahami risikonya, perilaku .NET 9, dan pilihan migrasi.
- Apakah .NET XmlReader aman dari XXE?
XmlReader melarang DTD secara bawaan. Pelajari perubahan .NET Framework 4.5.2, perbedaan API lama, dan cara mengamankan parsing XML.
- EF Core FromSqlRaw: SQL berparameter yang aman
Gunakan parameter terpisah pada FromSqlRaw, bukan input gabungan. Pelajari FromSqlInterpolated, versi EF Core, dan SQL dinamis yang aman.
- Node.js exec() vs execFile(): perbedaan dan keamanan
Bandingkan exec() dan execFile() di Node.js: shell, argumen, command injection, dan pemilihan API.
- Injeksi SQL FastAPI: Yang Dicegah dan Tidak Dicegah Pydantic
FastAPI memvalidasi data permintaan, tetapi keamanan SQL bergantung pada cara kueri disusun. Pelajari pengikatan parameter SQLAlchemy dan cara aman menangani identifier dinamis.
- SSRF Node.js fetch(): Ambil URL dengan Aman
fetch() di server dapat menjangkau tujuan pilihan pengguna. Pelajari pemetaan tujuan tetap, redirect, DNS, dan batas egress.
- SSTI FreeMarker dan Velocity: Keamanan Template
Kendalikan sumber template, batasi objek Java yang terekspos, dan isolasi proses render untuk mengurangi risiko SSTI pada FreeMarker dan Velocity.
- Injeksi Skrip GitHub Actions: Amankan Input Workflow
Nilai konteks GitHub bisa menjadi perintah shell saat disisipkan ke run. Pelajari env, izin token, dan risiko pull_request_target.
- GORM Raw SQL: Cegah Injeksi SQL di Go
Gunakan parameter terikat pada GORM Raw. Pelajari keamanan pengikatan nilai, kebutuhan allowlist untuk identifier SQL, dan cara meninjau kueri.
- Apakah Escape Tanda Kutip Cukup untuk Mencegah SQL Injection?
Tidak. Kueri berparameter memisahkan data dari SQL; escaping bergantung pada database dan rentan salah. Gunakan allowlist untuk identifier.
- Apakah memakai ORM cukup untuk mencegah SQL Injection?
Apakah memakai ORM cukup untuk mencegah SQL Injection?: untuk API kueri standarnya, ya. Setiap ORM utama juga menyediakan jalan pintas ke SQL mentah, dan itu membawa
- Java XXE: Apakah DocumentBuilderFactory aman secara bawaan?
Parser JDK membatasi sebagian serangan, tetapi akses eksternal tidak dinonaktifkan secara bawaan. Pelajari konfigurasi aman dan perbedaan provider.
- Keamanan ObjectInputStream Java: Cegah Risiko Deserialisasi
Data Java yang tidak tepercaya dapat memicu gadget saat readObject(). Pelajari filter, format aman, dan perlindungan stream lama.
- Java Runtime.exec() dan Command Injection: apa bedanya?
Runtime.exec(String) tidak memulai shell, tetapi input masih dapat mengubah argumen. Gunakan ProcessBuilder dan validasi setiap nilai.
- ReDoS Node.js: Regex dan CVE-2026-83606
Pelajari backtracking regex yang memblokir Node.js, kasus CVE-2026-83606, dan perbaikannya.
- Apakah render_template_string() Jinja2 aman?
Pakai template Jinja literal dan kirim data pengguna melalui konteks. Pahami SSTI, autoescape, dan syarat CVE-2024-56201.
- Apakah JSON.parse() menyebabkan prototype pollution?
JSON.parse() tidak mencemari prototipe. Pelajari bagaimana merge yang tidak aman dan kunci terkendali menimbulkan risiko.
- Apakah JSON.parse() lebih aman daripada eval()?
Mengapa JSON.parse() memperlakukan masukan sebagai data, bagaimana eval() menjalankannya, dan arti callback reviver.
- JWT di localStorage vs cookie HttpOnly: mana yang lebih aman? — flawopen.com
Perbandingan arsitektur JWT di localStorage dengan cookie HttpOnly SameSite: pencurian token lewat XSS, trade-off CSRF, dan arsitektur autentikasi yang direkomendasikan.
- Apakah Knex.js aman dari SQL Injection?
Knex mengikat nilai. Gunakan bindings pada knex.raw() dan allowlist untuk identifier SQL dinamis.
- Apakah lodash.merge() aman dari prototype pollution?
Perbaikan Lodash berbeda menurut fungsi dan versi. Periksa rentang terdampak, versi yang telah diperbaiki, dan cara mengolah data.
- Apakah rendering Markdown aman dari XSS?
Markdown tidak otomatis membuat HTML aman. Pelajari kapan HTML mentah diteruskan dan cara membersihkan hasil render dengan aman.
- Mass Assignment: risiko dan allowlist field yang aman
Mass Assignment memungkinkan data permintaan mengubah field yang tidak boleh dikendalikan pengguna. Pelajari allowlist dan otorisasi.
- Keamanan MCP: batas akses alat | FlawOpen
Pahami batas kepercayaan MCP dan batasi alat lokal, izin, serta persetujuan pengguna untuk mencegah paparan data.
- MyBatis ${} vs #{}: mencegah SQL Injection
Di MyBatis, #{} mengikat nilai lewat JDBC; ${} menyisipkan teks SQL mentah. Gunakan binding aman dan allowlist untuk identifier dinamis.
- MySQLi vs PDO: prepared statement yang aman
MySQLi dan PDO sama-sama dapat mencegah SQL Injection dengan prepared statement. Bandingkan binding nilai, driver, dan pola kueri aman.
- Newtonsoft.Json TypeNameHandling: konfigurasi aman?
Json.NET membaca nama CLR dari $type. Gunakan None untuk JSON yang tidak tepercaya; jika tidak, validasi tipe dengan binder ketat.
- Next.js Server Actions CSRF: Origin dan konfigurasi aman
Pelajari pemeriksaan Origin Next.js, risiko kepercayaan pada proxy dan allowedOrigins, serta otorisasi setiap action.
- Kebocoran state serverless: isolasi data per permintaan
Pelajari bagaimana runtime serverless yang digunakan ulang dapat membuka data lama dan cara mengisolasi identitas serta state per permintaan.
- Apakah NHibernate aman dari SQL Injection?
Parameter HQL NHibernate memisahkan nilai dari sintaks kueri. Pelajari risiko interpolasi string dan identifier dinamis.
- Risiko command injection pada Node.js exec()
Node.js exec() menjalankan shell. Pelajari risiko command injection dari input tak tepercaya dan cara execFile() serta validasi menguranginya.
- Apa itu kueri terparameterisasi?
Apa itu kueri terparameterisasi?: kueri terparameterisasi seperti mengisi formulir dengan kolom berlabel alih-alih menulis seluruh surat dengan tangan. Basis data lebih dah
- Apakah Prisma $queryRaw aman dari SQL Injection?
Prisma membuat nilai tagged template menjadi parameter. Pelajari kapan raw query aman dan mengapa identifier SQL memerlukan allowlist.
- Apakah interpolasi string di Rails where() aman?
Interpolasi data permintaan ke where() dapat menyebabkan SQL Injection. Gunakan kondisi hash atau parameter terikat.
- Keamanan Tool Agen AI dan Isolasi
Lindungi tool agen AI dengan otorisasi pengguna, persetujuan tindakan penting, dan eksekusi terisolasi. Pahami batas sandbox dan jaringan.
- Apakah Sequelize query() aman dari SQL Injection?
Raw query Sequelize membutuhkan parameter terpisah. Pelajari perbedaan replacements, bind, dan identifier SQL.
- Apakah SQLAlchemy text() aman dari SQL Injection?
SQLAlchemy text() menerima SQL mentah; ikat nilai lewat execute(). Pelajari risiko interpolasi dan identifier dinamis yang perlu ditinjau.
- SSRF dan Metadata Cloud: Risiko dan Pertahanan
Cara SSRF menjangkau metadata cloud dan cara kontrol penyedia, hak akses minimum, serta aturan egress mengurangi risiko.
- Apakah Svelte aman dari XSS secara default?
Svelte melakukan escape pada ekspresi teks biasa. Pelajari alasan {@html} memerlukan HTML tepercaya atau tersanitasi dan cara menemukan penggunaannya.
- Apakah TypeORM QueryBuilder aman dari SQL Injection?
TypeORM mengikat parameter QueryBuilder. Pelajari mengapa kondisi interpolasi, raw SQL, dan identifier dinamis tetap harus ditinjau.
- Risiko XSS pada Vue v-html
Vue meng-escape teks {{ }} secara default, tetapi v-html merender HTML mentah. Pelajari risiko XSS, penanganan rich text, dan audit berkas .vue.
- Cosign GHSA-fx35-mq7g-6g98: bypass verifikasi bundle
Cara bundle lama melewati pemeriksaan identitas, versi Cosign yang memperbaiki, dan cara memperkuat verifikasi blob di CI.
- Injeksi NoSQL MongoDB: filter kueri aman
Pelajari cara objek JSON tanpa validasi mengubah filter MongoDB, cara memvalidasi tipe, dan menguji perbaikannya.
- Apakah format string berbahaya untuk ID numerik?
ID numerik pun berisiko jika disisipkan ke kueri lewat format string. Pahami alasannya dan gunakan kueri berparameter.
- Object.assign() dan Prototype Pollution: apa yang aman?
Object.assign() dapat mengubah prototipe target melalui __proto__. Pahami bedanya dengan spread dan amankan deep merge.
- Node.js path.join() tidak mencegah Path Traversal
path.join() menormalkan path, tetapi mengizinkan ..; verifikasi containment setelah resolve dan tangani symlink secara terpisah.
- PHP include() dan jalur yang dikendalikan pengguna
Kapan include() membocorkan file atau menjalankan kode, mengapa RFI bergantung pada konfigurasi, dan cara memperbaikinya dengan daftar izin tetap.
- PHP == dan perbandingan Magic Hash
PHP 8 tetap membandingkan dua string numerik sebagai angka, sehingga hash 0e dapat cocok. Validasi tipe input dan gunakan hash_equals() untuk rahasia.
- PHP unserialize() dan input tak tepercaya
PHP melarang unserialize() untuk data tak tepercaya. Gunakan JSON; autentikasi data tepercaya sebelum parsing.
- Perbaikan Path Traversal Python os.path.join()
Pahami penanganan jalur absolut dan .. oleh os.path.join(); resolve jalur lalu periksa batas dengan commonpath().
- Python pickle.load(): risiko data tak tepercaya
Python pickle dapat menjalankan kode saat memuat data. Pelajari CWE-502 dan ganti masukan tak tepercaya dengan JSON tervalidasi.
- Keamanan XXE XML Python: ElementTree, Expat, lxml
Apakah ElementTree mencegah XXE? Pelajari risiko versi Expat, opsi parser lxml, dan cara aman menangani XML tak tepercaya.
- Apa itu ReDoS (backtracking katastrofik)?
Cara regex ambigu menyebabkan penolakan layanan dan cara membatasi biaya pencocokan dengan aman.
- Apakah Ruby YAML.load aman? Versi Psych dan safe_load
Periksa versi Psych, gunakan safe_load, dan jangan deserialisasi YAML atau Marshal yang tidak tepercaya melalui API tidak aman.
- Apakah blok unsafe Rust tetap aman bagi memori?
Blok unsafe Rust mengizinkan operasi tertentu. Programmer harus menjaga kontraknya agar pemanggil kode aman tidak memicu undefined behavior.
- Apakah SameSite=Strict menggantikan token CSRF?
Pahami perlindungan SameSite=Strict dan Lax, batasannya pada subdomain, serta kapan token CSRF tetap diperlukan.
- Apakah pemeriksaan query sqlx saat kompilasi mencegah SQL injection?
Ketahui apa yang diperiksa query!, cara parameter terikat mencegah SQL injection, dan kapan query().bind() aman.
- Apa itu server-side template injection?
Cara kerja SSTI, alasan dampaknya bergantung pada engine, dan cara memisahkan data tak tepercaya dari kode template.
- Apakah stored procedure kebal terhadap SQL injection?
Stored procedure hanya mencegah SQL injection jika memakai parameter terikat; pelajari cara mengamankan SQL dinamis dan identifier.
- Apakah unggahan SVG berisiko XSS?
Ketahui kapan skrip SVG berjalan dan cara menyanitasi, merasterisasi, serta mengisolasi berkas unggahan.
- WKWebView: HTML tak tepercaya aman?
WKWebView merender HTML dan skrip yang diterima. Pelajari kapan konten perlu disanitasi dan cara melindungi jembatan native.
- Apa beda XSS reflected, stored, dan DOM-based?
Bandingkan jalur reflected, stored, dan DOM-based XSS, lalu perbaiki tiap celah pada titik rendering.
- Apa itu kerentanan Zip Slip?
Pelajari cara nama berkas ZIP yang dimanipulasi dapat keluar dari direktori ekstraksi dan cara memvalidasi setiap jalur dengan aman.