Server

403 Forbidden — Artinya dan Cara Mengatasinya

Diperbarui 2026-08-30Baca ~8 menit

Berbeda dengan sebagian besar halaman error, 403 Forbidden bukan tanda ada yang rusak. Permintaan sampai ke tujuan, server memahaminya dengan sempurna, menemukan sumber dayanya, lalu menolak memberikannya kepada Anda. Penolakan itu memang disengaja.

Ini penting karena mengubah apa yang perlu Anda cari. Tidak ada crash yang harus dilacak, tidak ada layanan yang perlu direstart — hanya ada satu aturan di suatu tempat yang berkata "bukan ini, bukan untuk Anda". Artikel ini menjelaskan bedanya 403 dengan 401, penyebabnya secara berurutan, dan situasi ketika 403 justru berarti semuanya bekerja sesuai rancangan.

Beda 403 Forbidden dan 401 Unauthorized

Dua kode ini sering tertukar, bahkan oleh developer, dan membedakannya benar-benar menghemat waktu saat sedang mencari masalah.

401 berarti "saya tidak tahu Anda siapa — buktikan". Login bisa menyelesaikannya. 403 berarti "saya tahu persis Anda siapa, dan jawabannya tetap tidak". Login tidak akan membantu, karena identitas memang bukan masalahnya.

KodeArtinyaYang bisa dilakukan pengunjung
401 UnauthorizedBelum terautentikasi, atau kredensial ditolakLogin, atau perbaiki kredensial
403 ForbiddenSudah dikenali tapi tidak punya izinTidak ada — pemilik yang harus mengubah aturan
404 Not FoundSumber daya tidak ada di alamat ituPeriksa apakah URL salah ketik
429 Too Many RequestsDibatasi karena permintaan terlalu banyakTunggu, lalu perlambat
💡 Sebagian situs sengaja mengembalikan 404 alih-alih 403 untuk sumber daya privat. Itu pilihan keamanan: 403 mengonfirmasi bahwa sesuatu itu ada, sedangkan 404 tidak membocorkan apa pun.

Penyebab umum, dari yang paling sering

  • Permission file atau folder salah. File web biasanya butuh 644 dan folder 755. File dengan permission 600 tidak bisa dibaca web server dan langsung menghasilkan 403.
  • Tidak ada file index di dalam folder, sementara directory listing dimatikan. Server tidak punya apa pun untuk ditampilkan dan tidak boleh menampilkan daftar file, jadi ia menolak. Ini penyebab nomor satu dari kasus "folder saya error 403".
  • Aturan di .htaccess atau konfigurasi server. Satu baris "Deny from all", aturan anti-hotlink, atau daftar IP yang diizinkan yang sudah tidak memuat IP Anda.
  • Plugin keamanan atau WAF memblokir Anda. Plugin firewall WordPress, ModSecurity, dan aturan Cloudflare semuanya mengembalikan 403 saat sebuah permintaan melanggar aturan — sering kali false positive pada permintaan yang sepenuhnya normal.
  • IP Anda diblokir. Entah sengaja, atau otomatis oleh pemblokir brute-force setelah beberapa kali gagal login.
  • File dimiliki user yang salah. Sering terjadi setelah upload lewat SSH sebagai root atau restore dari backup — filenya ada dan terlihat baik-baik saja, tapi web server tidak bisa membacanya.
  • Pemblokiran berdasarkan negara atau pemblokiran bot. Sebagian situs mengembalikan 403 untuk seluruh negara, untuk rentang IP data center, atau untuk apa pun yang terlihat otomatis. Pengguna VPN mengalaminya terus-menerus.

Periksa dengan urutan ini

Mulailah dengan memastikan apakah error hanya terjadi pada Anda atau pada semua orang, karena fakta itu saja sudah mencoret separuh daftar di atas.

  • Buka situs di jendela penyamaran, lalu lewat data seluler dengan Wi-Fi dimatikan. Kalau lewat data seluler bisa, IP Anda sedang diblokir dan permission file bukan masalahnya.
  • Minta orang di negara lain membukanya, atau gunakan alat pemeriksa online. Anda dapat 403 sementara mereka dapat 200 berarti ada pemblokiran wilayah atau IP.
  • Kalau semua orang mengalaminya, periksa permission dulu: 644 untuk file, 755 untuk folder. Di shared hosting, File Manager bisa menampilkan dan mengubahnya; lewat SSH gunakan "chmod 644" dan "chmod 755".
  • Pastikan foldernya punya file index — index.html atau index.php. Kalau Anda memang ingin pengunjung melihat daftar file, directory listing harus diaktifkan secara eksplisit.
  • Ubah nama .htaccess menjadi .htaccess.bak lalu muat ulang. Kalau 403 hilang, salah satu aturan di file itu penyebabnya dan Anda bisa menelusurinya dari sana. Kembalikan filenya setelah ketemu.
  • Nonaktifkan plugin keamanan satu per satu. Plugin firewall dan "hardening" adalah sumber false positive 403 yang sangat umum, terutama pada URL admin dan endpoint REST API.
  • Baca error log server. Apache dan ModSecurity mencatat aturan mana yang terpicu, mengubah tebak-tebakan menjadi satu baris teks yang jelas.
  • Periksa kepemilikan file. Di server Linux, web server biasanya berjalan sebagai www-data, nginx, atau user khusus akun; file milik root tidak akan terbaca meski permission-nya terlihat benar.
💡 Jangan pernah "memperbaiki" 403 dengan chmod 777. Itu membuat file bisa ditulis siapa saja, merupakan lubang keamanan serius, dan bukan itu yang diminta server. 644 dan 755 adalah jawaban yang benar.

Ketika 403 memang sudah benar

Tidak semua 403 adalah masalah. Banyak di antaranya adalah server yang sedang melindungi sesuatu persis seperti yang dirancang, dan "memperbaikinya" justru kesalahan yang sesungguhnya.

File konfigurasi, folder backup, direktori .git, file environment, dan folder upload yang tidak boleh mengeksekusi kode diblokir secara rutin dan benar. Kalau Anda melihat 403 pada /.env atau /.git/config, itu kabar baik — kalau file-file itu bisa dibaca, barulah ada insiden keamanan sungguhan.

Rate limiting dan pemblokiran bot juga muncul sebagai 403. Kalau crawler, sistem monitoring, atau API client Anda mendapat 403 sementara browser normal-normal saja, server sedang mengatakan ia tidak menginginkan trafik otomatis pada kecepatan itu. Solusinya memperlambat atau meminta akses, bukan menyamarkan permintaan.

Sebelum mengubah apa pun, tanyakan apakah sumber daya ini memang seharusnya publik. Kalau jawabannya tidak, 403 sedang menjalankan tugasnya dan tindakan yang benar adalah membiarkannya.

Ingin kendali penuh atas permission dan aturan firewall Anda?

Cloud VPS dengan akses root penuh, error log sungguhan, dan tanpa batasan shared hosting — mulai ฿150/bulan.

Pertanyaan yang Sering Diajukan

Kenapa saya kena 403 tapi rekan saya tidak?

Ada sesuatu yang memperlakukan permintaan Anda berbeda — hampir selalu alamat IP. Entah diblokir sengaja, diblokir otomatis oleh pemblokir brute-force setelah gagal login, atau Anda memakai VPN yang IP-nya masuk daftar hitam. Coba lewat data seluler: kalau situsnya terbuka, IP-lah pembedanya.

Saya sudah set file ke 777 tapi tetap 403. Kenapa?

Karena permission mungkin memang tidak pernah jadi masalahnya, dan sekarang Anda menambah risiko keamanan. Kalau 777 tidak memperbaikinya, periksa permission folder induk, kepemilikan file, atau aturan deny eksplisit di .htaccess. Kembalikan file ke 644 apa pun hasilnya.

Apakah 403 memengaruhi peringkat pencarian?

Ya, kalau Googlebot yang menerimanya. Aturan firewall yang terlalu ketat kadang ikut memblokir bot mesin pencari, dan halaman yang tidak bisa diambil Google akhirnya keluar dari indeks. Gunakan URL Inspection di Search Console untuk melihat persis apa yang diterima Googlebot — bisa sangat berbeda dari yang Anda lihat.

Bagaimana tahu 403 datang dari Cloudflare atau dari server saya?

Halaman 403 Cloudflare punya branding dan mencantumkan ray ID; 403 dari server biasanya halaman polos dari Apache atau Nginx, atau halaman error kustom Anda. Kalau dari Cloudflare, aturannya ada di dashboard Cloudflare, bukan di server — itulah sebabnya mengubah .htaccess tidak berpengaruh sama sekali.