Selasa, 10 September 2013

Praktikum UAS PBO

Method (nama file Balok.java) source codenya :
import java.util.Scanner;
public class Balok {
public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Volume dan Luas Balok");
        System.out.print("Panjang Balok         : ");
        int p = input.nextInt();
        System.out.print("Lebar Balok            : ");
        int l = input.nextInt();
        System.out.print("Tinngi Balok            : ");
        int t = input.nextInt();
        System.out.print("Luas permukaan Balok    : "+ (2*((p*l)+(p*t)+(l*t))) + "\n");
        System.out.println("Volume Balok         : " + (p*l*t)); 
}
}

Konstruktor (nama file BalokBeraksi.java) source codenya :
 public class BalokBeraksi {
    public static void main(String[] args) {
    Balok blk= new Balok();

        blk.LuasPermukaan(2,3,4);
        blk.volume(2,3,4);
         } 
}

Keterangan : coding diatas bisa anda utak-atik lagi biar lebih bagus.. semoga memberikan manfaat bagi semuanya bro... semoga berhasil

Sabtu, 27 Juli 2013

Mengamankan Web Server Apache dan PHP Dalam Keamanan Jaringan Menggunakan Path Suhosin



Disable Functions

Ada beberapa fungsi di PHP sangat berbahaya apabila digunakan tidak hati-hati. Sebagai salah satu contohnya adalah fungsi system() yang dapat digunakan untuk mengeksekusi shell command dari kode PHP anda. Kemudian ada juga fungsi ini_set() yang dapat mengubah konfigurasi php ini melalui kode PHP yang ada. Fungsi-fungsi seperti ini akan lebih baik jika dinon-aktifkan saja apabila memang tidak ada aplikasi web anda yang menggunakannya. Untuk itulah ada option disable_functions di php ini. Option ini akan men-disable semua fungsi yang disebutkan di dalamnya. Sehingga jika ada kode PHP yang menggunakan fungsi tersebut, kode tersebut tidak akan berjalan.

Contoh isi disable_functions yang disarankan (setiap nama fungsi dipisahkan dengan tanda koma), dapat ditambahi, dapat juga dikurangi sesuai dengan kebutuhan.

Sebetulnya ada 2 fungsi lagi yang bisa di-disable, yaitu base64_decode dan mysql_pconnect. Untuk mysql_pconnect ini masih tidak terlalu berbahaya jika digunakan. Hanya saja jika digunakan secara sembarangan dapat menghabiskan resource server yang cukup besar untuk menyimpan persistent connection.

Sedangkan base64_decode, biasanya digunakan untuk menyembunyikan kode-kode PHP yang berbahaya dalam bentuk base64, sehingga tidak dapat terdeteksi oleh antivirus atau secara manual. Biasanya fungsi ini akan dipanggil di dalam fungsi eval(). Meskipun begitu, beberapa CMS (moodle), PHP Framework (CodeIgniter), dan PHPMyAdmin menggunakan fungsi ini juga. Jadi jika di-disable, kemungkinan besar, fungsionalitas dari aplikasi-aplikasi tersebut akan terganggu. Karena itu, di bawah ini akan dijelaskan bagaimana agar script-script berbahaya yang bersembunyi dengan base64_decode dapat dicegah.

Disable Eval() Function

Eval adalah sebuah fungsi yang dapat digunakan untuk menjalankan script PHP yang ada di dalam parameter fungsi eval tersebut. Hal ini sangat berbahaya, karena bisa saja fungsi yang dijalankan di dalam eval() adalah fungsi-fungsi untuk meretas sistem kita. Karena itu, fungsi eval ini harus di-disable atau minimal dibatasi kemampuannya.

Option disable_functions tidak dapat mencegah fungsi eval() untuk berjalan, cara lain untuk men-disable eval() adalah dengan menggunakan patch suhosin untuk php. Kelebihan patch ini adalah tidak perlu mengompile ulang php untuk menjalankannya. Di beberapa distro seperti ubuntu, debian, dan fedora, patch ini sudah ada di repository. Jadi kita tinggal install saja di server dengan menggunakan apt-get atau synaptic atau yum. Paketnya biasanya bernama php5-suhosin. Setelah paket ini terinstall, buka file /etc/php5/apache2/conf.d/suhosin.ini (mungkin berbeda untuk distro selain Ubuntu dan Debian).

Kemudian pastikan baris ini aktif (tidak dianggap sebagai komentar) di file tersebut :

extension=suhosin.so

Setelah itu cari 3 baris ini :

    suhosin.executor.eval.whitelist =
    suhosin.executor.eval.blacklist =
    suhosin.executor.disable_eval = off

Baris whitelist digunakan untuk menentukan fungsi-fungsi apa saja yang boleh dieksekusi oleh fungsi eval. Sedangkan blacklist menentukan fungsi-fungsi apa saja yang tidak boleh dijalankan oleh fungsi eval. Apabila kita ingin men-disable eval secara keseluruhan, maka kita harus merubah parameter suhosin.executor.disable_eval menjadi on. Akan tetapi beberapa CMS juga ada yang memanfaatkan fungsi eval ini. Karena itu, kita bisa memanfaatkan blacklist saja untuk mencegah beberapa fungsi berjalan di dalam eval. Isi dari blacklist dapat diisi sama dengan disable_functions tadi, atau cukup ditambahkan fungsi-fungsi tertentu yang tidak boleh berjalan di dalam eval, seperti base64_decode.

Di bagian sebelumnya base64_decode tidak dimasukkan ke disable_function, karena masih banyak yang menggunakannya. Tetapi aplikasi web biasa, jarang menggunakan base64_decode di dalam eval. Biasanya yang seperti itu hanya para pembuat theme CMS yang ingin menyembunyikan kode untuk menampilkan copyrightnya. Oleh karena itu, base64_decode ini didaftarkan saja di blacklist suhosin agar dia tidak berjalan apabila berada di dalam fungsi eval.