i (am) Blogger and U?

from X-periment to X-perience

Template Toko Online: Shopper Variant

SHOPPER-Variant 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 c [...]

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

Profile / Portofolio Pro 1

Aplikasi Profil / Portofolio Pro 1, software berbasis web untuk pengelolaan portofolio atau untuk menampilkan profil baik perusahaan maupun perseorangan. Selain itu software ini dapat p [...]

Online Shop Basic 1

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

Anime/Movie Community Sharing (FullCustom)

Produk ini adalah aplikasi web full-custom yang diperuntukkan bagi Anda yang ingin membuat situs/web yang dapat menampilkan anime/movie dan dapat ditonton oleh para pengunjung. Video an [...]

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.

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