i (am) Blogger and U?

from X-periment to X-perience

One-Page Portofolio / Gallery 2

One-Page Portofolio / Gallery 2 memiliki fitur-fitur yang sama persis dengan One-Page Portofolio / Gallery 1 tapi dengan theme/template yang berbeda (theme yang dipakai pada versi ini a [...]

Template Toko Online: Shopper

SHOPPER adalah HTML template (menggunakan Bootstrap 3.3.6) yang ditujukan untuk toko online. Template ini terdiri dari 6 halaman siap pakai yaitu home, product lists, shopping cart, det [...]

Aplikasi Web: WebReview-Series 1

Web Review-Series 1 adalah paket aplikasi web yang memfasilitasi Anda yang ingin membuat situs yang berisi review dari berbagai hal. Review tentang suatu produk, Review tentang suatu te [...]

Toko Online Barang Digital 1

Toko Online Barang Digital 1 adalah paket full-features aplikasi toko online khusus untuk benda/barang digital seperti aplikasi/software atau ebook pdf, doc dkk yang dapat digunakan unt [...]

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

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

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