KangJaz.com

Tempat Tips, Tutorial dan Source Code dari seorang newbie

Cara mencagah direct access file PHP

07 Desember 2016 | Kategori : PHP

Waaahhh lama juga ya saya tidak menyapa sobat semua, gimana nih kabarnya ? semoga selalu dalam keadaan baik. Kali ini saya akan memberikan coretan bagaimana cara melindungi file php dari pengaksesan secara langsung atau biasa disebut direct access. Bingung ya maksudnya gimana ?

php.jpg

Begini sob, misalkan saya mempunyai struktur project seperti pada gambar di bawah ini :

dt-file.png

Berikut script file system yang saya buat :

<?php
echo "Hallo saya file sistem";
?>

Nahh, kemudian saya akan mengakses file system.php secara langsung di browser

myapps1.png

Bisa dilihat file tersebut masih bisa kita akses secara langsung. Nah, rencananya file tersebut hanya bisa diakses lewat file index.php saja sob, untuk itu kita akan memproteksi file tersebut agar tidak bisa diakses secara langsung.

Bagaimana caranya agar file php tidak bisa diakses secara langsung?

Dalam bahasa pemrograman php kita bisa menggunakan fungsi defined(); untuk mencegah akses langsung ke file, untuk cara penggunaannya bisa dilihat contoh script di bawah ini :

<?php
defined("BASEPATH") or exit("No direct access allowed");
echo "Hallo saya file sistem";
?>

Script di atas adalah script file system setalah kita tambah fungsi defined();, sekarang kita coba akses kembali file tersebut.

myapps2.png

Dan taraaa hasilnya pun file sudah terproteksi, sekarang kita buat file index nya sob, untuk script awalnya seperti di bawah ini :

<?php
include ("./system/system.php");
?>

Kemudian kita coba akses file tersebut, dan hasilnya seperti berikut :

myapps3.png

Lohhh kok masih no direct access ? mungkin sobat ada pertanyaan seperti itu. Tenang itu hal wajar karena kita belum mendefinisikannya, untuk mendefinisikannya kita bisa gunakan fungsi define(); dan perlu diingat, definisinya harus sama dengan kata yang kita defined tadi ya sob. untuk contohnya bisa dilihat script index yang telah kita modifikasi di bawah ini :

<?php
define("BASEPATH", dirname(__FILE__));

include ("./system/system.php");
?>

Kemudian kita coba akses kembali dan taraaa hasilnya seperti gambar di bawah ini :

myapps4.png

Nah gimana sob? mudah bukan? tentunya proteksi sangat diperlukan untuk melindungi file system. Bisa terbayangkan jika file sistem bisa diakses secara langsung oleh semua orang, tentunya hal tersebut akan menjadi sebuah celah lebar pada aplikasi yang kita buat.

Mungkin cukup ini yang bisa saya tulis kali ini, semoga sedikit tulisan ini bisa bermanfaat buat sobat semua.

CMIIW...