i (am) Blogger and U?

from X-periment to X-perience

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

Aplikasi Web: Online Shop PRO 1

Toko Online Pro 1 adalah paket full-features aplikasi toko online yang dapat digunakan untuk menjalankan bisnis Anda secara online. Aplikasi ini memiliki fitur-fitur unggulan dan lengk [...]

Template: ANIME-MAX

ANIME-MAX adalah HTML template (menggunakan Bootstrap 3.3.6) yang ditujukan untuk situs yang menyediakan link download atau nonton online video dalam kasus ini contohnya adalah anime ta [...]

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

One-Page Portofolio / Gallery 3

One-Page Portofolio / Gallery 3 memiliki fitur-fitur yang sama persis dengan One-Page Portofolio / Gallery 1 tapi dengan theme/template yang berbeda.

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