i (am) Blogger and U?

from X-periment to X-perience

One-Page Portofolio / Ga..

One-Page Portofolio / Gallery 3 memiliki fitur-fitur yang sama persis dengan One-Page Portofoli [...]

Aplikasi Web: WebReview-..

Web Review-Series 1 adalah paket aplikasi web yang memfasilitasi Anda yang ingin membuat situs [...]

Template Toko Online: Sh..

SHOPPER-Variant adalah HTML template (menggunakan Bootstrap 3.3.6) yang ditujukan untuk toko on [...]

WP Plugins: RSS to Post

RtoP adalah WordPress Plugins yang memudahkan untuk membuat post yang content-nya berasal dari [...]

Template Toko Online: Sh..

SHOPPER adalah HTML template (menggunakan Bootstrap 3.3.6) yang ditujukan untuk toko online. Te [...]

Aplikasi Web: URL Shorte..

URL Shortener Complete 2 adalah aplikasi yang membantu Anda untuk menjalankan situs/web yang me [...]

2014
21Des

Tips Mengamankan File PHP

Post category: Web Development

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. <<