Mengamankan Akses Controller pada CodeIgniter

Memproteksi Akses Controller pada CodeIgniter
Cara Mengamankan Akses Controller pada Framework CodeIgniter - Bila teman-teman pernah menggunakan framework dalam pembuatan aplikasi, pasti sudah tidak terdengar asing dengan istilah "routing" atau "route". URL routing (route) adalah salah satu metode yang digunakan untuk memetakan URL ke dalam sumber daya tertentu dengan memberikan nama lain dari alamat sumber daya yang dimaksud. Dalam framework CodeIgniter, route biasanya digunakan untuk memanipulasi url agar dapat mengakses controller tertentu. Pengaturan route pada framework CodeIgniter berada pada application/config/routes.php.

Pada framework CodeIgniter, kita sebenarnya bisa langsung menggunakan aplikasi kita tanpa mengatur routing terlebih dahulu. Secara default kita bisa memanggil sebuah fungsi dengan cara mengakses lewat URL dengan format: http://namadomain.com/namacontroller/namafungsi.
Berbeda dengan framework PHP lainnya seperti Laravel, setiap Controller yang akan diakses harus dimasukkan ke dalam routes terlebih dahulu. Menurut saya, routing pada Laravel lebih baik daripada CodeIgniter karena lebih membatasi pengguna untuk mengakses Controller yang mungkin tidak kita kehendaki. Selain itu, secara tidak langsung routing dapat menyembunyikan path asli dari struktur Controller kita.

URL routing sering digunakan dalam beberapa hal berikut:
  1. Menjadikan URL sumber daya yang sulit dibaca manusia dengan membuatkan pemetaan baru ke URL alias dari route yang lebih mudah dibaca manusia.
  2. Membuat URL sumber daya menjadi lebih pendek dengan memberikan penamaan routing yang lebih pendek.
  3. Memantau agar URL sesuai dengan format yang diinginkan dengan memanfaatkan fungsi regeluar expression (regex).

Pernah saya temui pertanyaan pada beberapa forum tentang, bagaimana cara agar aplikasi kita hanya bisa diakses apabila sudah di-route seperti Laravel? Atau, bagaimana cara agar controller tidak bisa diakses langsung lewat url, jadi akses hanya lewat routing saja? Dalam hal lain, saya juga menemui kasus agar controller pada aplikasi yang saya bangun tidak bisa diakses secara langsung sebelum di-filter dalam routes. Nah pada tulisan saya kali ini, saya akan berbagi cara agar Controller pada CodeIgniter hanya bisa diakses bila routes sudah diatur.

Berikut adalah langkah-langkah untuk memproteksi Controller pada CodeIgniter agar tidak bisa di-akses secara langsung:
  1. Pertama, buka konfigurasi routing CodeIgniter pada application/config/routes.php
  2. Pada bagian paling bawah, tambahkan kode berikut:
    # Disable Controller access without routing
    $route['(.*)'] = "error404";
    
  3. Tulis semua pengaturan routes teman-teman di atas kode tersebut.

Nah, penjelasan kode tersebut adalah semua halaman akan mengakses http://namadomain.com/error404 secara default, dengan demikian maka semua halaman akan me-response halaman 404.
Bila kita menambahkan pengaturan routing di atas kode tersebut, maka routers pada CI akan menampilkan halaman sesuai dengan apa yang telah di-atur dalam routes.
Demikian cara menonaktifkan akses Controller pada framework CodeIgniter dari saya, semoga bermanfaat.


Referensi:
https://situsali.com/belajar-codeigniter-3-dasar-routing/
https://www.mahadisuta.com/artikel/penerapan-url-routing-pada-framework-codeigniter
https://stackoverflow.com/questions/7618633/routes-in-codeigniter-automatically
Next Post Previous Post
2 Comments
  • Aji Jaka I. R.
    Aji Jaka I. R. 5 Oktober 2019 pukul 11.36

    mantap kang. boleh copas gk?

    • Sunu Aziz Rahayu
      Sunu Aziz Rahayu 6 November 2019 pukul 07.15

      silahkan, yang penting cantumin sumber ya. terimakasih.

Add Comment
comment url