Membaca log akses setelah serangan Log sudah memuat seluruh ceritanya. Enam perintah satu baris mengubah sejuta baris menjadi: siapa, dari mana, dan apakah dia berhasil masuk. 5 min read Cadangan adalah tindakan pengamanan Cadangan yang duduk di server yang sama, dengan kredensial yang sama, bukanlah cadangan. Ia salinan kedua yang menunggu peristiwa yang sama. 4 min read CSRF: formulir yang dikirim dari tempat lain Pengunjung Anda sedang masuk, lalu situs lain membuat perambannya mengirim permintaan ke situs Anda. Satu token untuk tiap formulir menghentikannya. 4 min read Cara mengetahui apakah sebuah situs sudah dibobol Kebanyakan situs yang dibobol tampak sepenuhnya normal di mata pemiliknya. Tanda-tanda yang layak diperiksa, dan empat perintah yang menemukannya. 5 min read fail2ban: apa yang dihentikannya dan apa yang tidak Ia membaca log dan memblokir alamat yang mengulang sebuah pola. Berguna, sempit, dan gampang sekali disetel sampai memblokir kantor Anda sendiri. 5 min read Izin yang benar, bukan sekadar yang berhasil 777 membuat galatnya hilang sekaligus membuka situs itu bagi siapa saja yang bisa menulis sebuah berkas. Apa arti angka-angka itu dan apa yang sebenarnya dibutuhkan sebuah situs. 5 min read Membersihkan situs yang sudah dibobol Urutan yang membuat situs yang diretas jadi bersih dan tetap bersih — dan langkah yang hampir semua orang lewatkan. 8 min read Memperkeras SSH Enam baris pengaturan mengubah layanan yang paling banyak diserang di server Anda menjadi layanan yang sama sekali tidak bisa ditebak. 4 min read Perangkat perusak di basis data, bukan di berkasnya Anda sudah memasang ulang intinya, mengganti setiap pengaya, dan pengalihannya masih ada juga. Ia ada di sebuah baris, bukan di sebuah berkas. 4 min read Kepemilikan, umask, dan jebakan grup chmod 777 menyembuhkan gejalanya dan membuka pintunya. Kepemilikan dan bit grup menyembuhkan sebabnya, sekaligus menjaga berkas baru tetap benar. 5 min read Serangan paksa terhadap panel kendali Ribuan percobaan masuk sehari adalah derau latar yang wajar. Ia baru menjadi pembobolan ketika satu kata sandi lemah dan tak ada yang menghitung. 4 min read Menjaga PHP tetap tertambal tanpa merusak situs Bertahan di versi PHP yang tak lagi didukung adalah kegagalan keamanan yang berjalan pelan. Rilis tambalan itu aman; versi besar butuh dua puluh menit persiapan. 4 min read Mengapa satu cadangan bukanlah cadangan Perangkat pemeras mencari cadangan lebih dulu, dan menemukan yang bisa dijangkau server itu. Aturan 3-2-1 ada justru karena itu. 4 min read Membatasi laju sebuah halaman masuk Menebak kata sandi berarti ribuan percobaan dalam sejam. Sebuah batas membuatnya sia-sia, dan ongkosnya satu blok di konfigurasi server. 4 min read Injeksi SQL dengan bahasa yang terang Datanya terbaca sebagai bagian dari pertanyaannya. Satu kebiasaan melenyapkan seluruh golongan ini, dan kebiasaan itu bukanlah pelolosan karakter. 5 min read Kunci SSH sebagai ganti kata sandi Sebuah kunci menamatkan percobaan paksa sepenuhnya. Buat satu, pasang, uji di jendela kedua, dan baru sesudah itu matikan kata sandinya. 5 min read Dua faktor, dan di mana menyimpan kode pemulihannya Ia membuat kata sandi yang dicuri tak lagi cukup. Memasangnya makan dua menit; bagian yang salah dikerjakan orang adalah apa yang terjadi kalau ponselnya hilang. 4 min read Direktori unggahan tak boleh menjalankan apa pun Memeriksa ekstensi berkas saja tidak cukup. Kalau server webnya mau menjalankan PHP dari folder unggahan Anda, satu unggahan buruk sudah berarti sebuah cangkang. 4 min read Empat hal yang membuat situs WordPress dibobol Bukan celah yang aneh-aneh. Empat kelalaian biasa menjelaskan hampir semua situs yang jebol, dan menutup tiap satunya cuma perlu beberapa menit. 6 min read Cross-site scripting, dengan bahasa terus terang Kode orang lain yang berjalan di halaman Anda, di dalam sesi pengunjung Anda. Satu kebiasaan mencegah hampir semuanya. 5 min read