Cara Mencegah Direct Access Source Ajax

Kategori: PHP

Halo, pada posting kali ini saya akan memberikan tips bagaimana mencegah direct access file source ajax. Namun sebelum itu, mari kita simak apa itu Ajax.

Ajax adalah kependekan dari Asynchronous JavaScript and XML. Sebuah teknik pada pemrogramman web untuk melakukan pertukaran data pada latar belakang.

Mekanisme ajax adalah melakukan request pada file source ajax (server) kemudian akan memberikan response ke client berupa JSON atau plain text.

Lalu bagaimana kita memastikan request tersebut berupa ajax atau bukan?

Untuk menjawabnya silakan simak penjelasan singkat berikut ini.

Mencegah Direct Access Ajax PHP Native

Untuk mencegah direct access file source ajax pada PHP native, kita bisa melakukannya dengan menggunakan kondisional if else.

Contohnya seperti ini

<?php
    // Memeriksa apakah request berupa ajax atau bukan. Jika request berupa ajax akan langsung melanjutkan proses berikutnya.
    if ( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && ( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) ) {

        KODE PHP YANG AKAN DIPROSES.

    // Kalau request bukan ajax (direct access/akses langsung), akan menampilkan peringatan.
    } else {

        // Tampilkan peringatan.
        echo 'No direct access source!';

    }
?>

Selain dengan menampilkan peringatan, kita juga bisa mengalihkan/meredirect halaman jika file source ajax di akses secara langsung.

Mencegah Direct Access Ajax CodeIgniter

Pada CodeIgniter caranya juga sama dengan pada PHP native, hanya saja kodenya sedikit berbeda.

Berikut ini kode untuk mencegah direct access file source ajax pada CodeIgniter.

public function insert()
{
    // Memeriksa apakah request berupa ajax atau bukan, jika bukan ajax maka akan menampilkan peringatan.
    if ( ! $this->input->is_ajax_request()) {

        // Tampilkan peringatan.
        echo 'No direct access source!';

    // Kalau request berupa ajax, maka akan memproses kode berikutnya.
    } else {

        KODE PHP YANG DIPROSES.

    }
}

Sama dengan PHP native, pada CodeIgniter kita juga bisa mengalihkan/meredirect halaman jika file source ajax di akses secara langsung.

Diposting pada Feb 18, 2018