i (am) Blogger and U?

from X-periment to X-perience

Aplikasi Web: Online Shop PRO 2

Toko Online Pro 2 memiliki fitur-fitur yang sama persis dengan Toko Online Pro 1 tapi dengan theme/template yang berbeda.

Belajar Online: E-learning - Kuis & Soal

"Belajar Online: E-learning - Kuis & Soal", Software/aplikasi e-learning berbasis web yang dapat digunakan oleh pengajar/guru/pembimbing atau perorangan untuk membuat soal/kuis atau per [...]

Web Profil / Portofolio Basic 1

Web Profil/Portofolio Basic 1, aplikasi/software untuk mengelola portofolio (atau bisa juga dijadikan sebagai photo/image gallery) atau untuk menampilkan profil perusahaan maupun perseo [...]

Aplikasi Web: Pre-Order Online Shop

Pre-Order Online Shop adalah paket full-features aplikasi toko online yang dapat digunakan untuk menjalankan bisnis Anda secara online. Fasilitas unggulan yang terdapat pada aplikasi in [...]

WP Plugins: RSS to Post

RtoP adalah WordPress Plugins yang memudahkan untuk membuat post yang content-nya berasal dari blog/web lain dalam hal ini dengan memanfaatkan RSS. RtoP dapat menyimpan banyak RSS da [...]

Online Shop Basic 2

Online Shop Basic 2 adalah paket minimalis aplikasi toko online instan yang dapat digunakan untuk menjalankan bisnis secara online. Aplikasi ini adalah aplikasi toko online yang "sudah [...]

Tips Mengamankan File PHP

Category: Web DevelopmentDate:
Sunday, 21 Dec 2014

Kesempatan kali ini akan dibahas tentang beberapa cara yang dapat ditempuh mengamankan aplikasi php (untuk yang tidak menggunakan framework). "Biasanya" ketika membuat aplikasi dengan menggunakan php adalah meng-include-kan file yang sering digunakan sehingga tidak perlu menulis berulang kali. Sebagai contoh kasus kita namai filenya dengan index.php yang berisi beberapa file lain seperti database.php, header.php, content.php, footer.php

Umumnya yang dilakukan ketika meng-include-kan file php adalah lebih kurang seperti ini:

[php]
include 'database.php';
include 'header.php';
include 'content.php';
include 'footer.php';
[/php]


Kebanyakan pengunjung hanya akan mengakses halaman index.php saja. Akan tetapi, ada "pengunjung spesial" yang terkadang mencoba-coba mengakses halaman web dengan mengganti-ganti url sehingga untuk menangani kasus semacam ini yang bisa dilakukan oleh webDeveloper adalah jangan menamai file php dengan nama yang umum (contoh nama file yang umum adalah config.php, my_config.php, db.php, database.php, header.php dkk). Nama umum bisa diganti dengan nama aneh sesuai selera tapi untuk memudahkan identifikasi maka lebih mudah dengan menambahkan prefix (awalan). Misalnya yang dipilih sebagai prefix adalah "wewewe_" maka nama file header.php menjadi wewewe_header.php

Lha memang kenapa kalau menggunakan nama umum? Sebagai contoh bila seseorang mencoba mengakses file header.php secara langsung tanpa melalui index.php maka yang terjadi biasanya adalah muncul pesan error (bisa berupa error db atau file php not found) yang menunjukkan "informasi sensitif" semacam tabel database (dan strukturnya) atau lokasi file.

Cara yang bisa ditempuh salah satunya adalah dengan menonaktifkan error_reporting dengan menempatkan kode berikut di tiap file php (cara ini akan "mendatangkan masalah" misalnya ketika akan dilakukan debugging maka tiap file harus diedit).
error_reporting(0);


Cara menonaktifkan error_reporting sebenarnya bisa tetap dilakukan yakni dengan menempatkannya hanya di file index.php tapi dengan sedikit tambahan (berupa konstanta) pada file index.php menjadi:
[php]
error_reporting(0);
define('SITUS', 'UJI COBA');
include 'database.php';
include 'header.php';
include 'content.php';
include 'footer.php';
[/php]


Bagian define('SITUS', 'UJI COBA'); mendefinisikan konstanta SITUS yang berisi "UJI COBA" dan ini hanya contoh saja sehingga bisa diganti dengan yang lain. Hal lain yang harus dilakukan adalah menempatkan kode berikut di baris pertama tiap file php selain index.php
if ( ! defined('SITUS')) exit('NO ACCESS');


Sekarang bila file header.php diakses secara langsung maka yang muncul adalah pesan "NO ACCESS".


No comments...
>> Comments closed. <<