XAMPP Talk : Web and Database Server Protection

Apakah Anda seorang web programmer?

Apakah Anda menggunakan XAMPP sebagai software PHP All in One Package?

Apakah Anda selama ini mengabaikan pentingnya proteksi pada server Anda?

Jika semua pertanyaan diatas Anda jawab dengan “ya”, maka benarlah komputer Anda membawa Anda kesini.

Pernahkah Anda membuka Apache Web Server Administration Page(XAMPP Pages) atau PhpMyAdmin dari komputer host(bukan komputer Server)? Jika proteksi belum diaktifkan, maka Web Administration atau PhpMyAdmin ini bisa diakses dari mana saja tanpa memerlukan sebuah otentifikasi username dan password. Dengan begitu, pihak diluar admin dapat mengubah konfigurasi dengan bebas pada Server anda kecuali proteksi. Tentunya Anda sebagai Administrator tidak menginginkan ini terjadi bukan?

Ada 3 hal yang perlu Anda perhatikan dalam masalah proteksi, yaitu:

  1. XAMPP pages (http://127.0.0.1/xampp/)
  2. MySQL admin Password (Database server Password)
  3. dan PhpMyAdmin (http://localhost/phpmyadmin/)

Untuk melihat status proteksi-proteksi diatas, Anda bisa mengaksesnya melalui situs ini. http://127.0.0.1/security/ atau memilih langsung menu Security dari Homepage XAMPP Pages Anda yang terletak di slidebar sebelah kiri. Jika Anda belum melakukan proteksi, maka status proteksi Anda akan seperti screen shot berikut ini.

Continue reading

PHP Talk: CRUD Part 4 (FINAL)

Hallo PHP Programmers… Sudah cukup lama saya merancang tutorial CRUD PHP ini, namun dikarenakan liburan akhir tahun saya yang lumayan panjang, jadi part terakhir dari tutorial ini menjadi tertunda. Kini saya sudah kembali ke kehidupan saya sebagai blogger dan juga mahasiswa, dan saatnya pula kita mulai men-sharing-kan ilmu kita kembali di Blog ini.

Pada PHP Talk: CRUD Part 3 kita telah membahas teknik CRUD sampai pada U(Update). Dan sekarang tibalah saatnya kita membahas tentang proses terakhir yaitu D(Delete). Tutorial terakhir ini cukup pendek dibandingkan dengan tutorial sebelumnya, jadi jangan malas dulu ya?.. Jika teman-teman belum mengikuti tutorial yang sebelumnya, silahkan ikuti terlebih dahulu. Berikut permalink dari rentetan tutorial ini:

Jika teman-teman sudah mengikutinya dan berakhir dengan kesuksesan, saatnya sekarang kita tuntaskan misteri dibalik CRUD ini.…

1. Starter

Untuk dapat menghapus sebuah data dalam data base, maka kita memerlukan suatu file .php yang bertugas untuk mengeksekusi permintaan penghapusan dari user. Sekarang buatlah file .php dengan nama delete.php pada folder tutorialphp. File ini nantinya akan menerima datakey dari halaman utama dan akan menghapus data mahasiswa yang sesuai dengan datakey yang dikirimkan tersebut.

2. Mengubah Halaman utama.

Continue reading

PHP Talk: CRUD Part 3

Pada PHP Talk: CRUD Part 2, kita telah membahas tuntas tentang proses Create pada aplikasi berbasis CRUD. Kali ini saya akan meneruskan pembahasan CRUD ini ke proses Update. Jika anda belum mengikuti tutorial yang sebelumnya, silahkan ikuti terlebih dahulu. Berikut permalink dari rentetan tutorial ini:

Jika teman-teman sudah mengikutinya dan sukses, mari kita lanjutkan tutorialnya…

1. Starter

Untuk mengedit/update data yang berada dalam database, kita memerlukan form tambahan dimana kita akan mengganti value dari setiap fieldnya. Maka buatlah folder “edit” pada folder C:\xampp\htdocs\tutorialphp.  Jika sudah buatlah 2 file .php dengan nama masing-masing:

  1. index.php, digunakan untuk mendisplay dan memasukan data yang baru.
  2. edit.php, digunakan untuk menangkap data hasil masukan user dan meng-update sebuah baris pada database sesuai dengan datakey-nya.

2. Mengubah Halaman utama.

Continue reading

MySQL Talk: Password Encryption and Hashing


Di dalam ilmu Cryptography(Ilmu dan seni untuk menyembunyikan informasi), encryption adalah suatu proses transformasi informasi dengan menggunakan algoritma tertentu untuk membuat informasi tersebut menjadi tidak dapat dibaca oleh siapapun kecuali oleh mereka yang memiliki algoritma dibalik proses enkripsi tersebut. Dalam banyak konteks, proses enkripsi secara implisit mengacu pada proses kebalikannya, dekripsi(decryption), yang akan membuat informasi terenkripsi dapat dibaca kembali. Proses enkripsi selalu menghasilkan informasi yang terenkripsi dengan panjangnya tidak tentu. Berbeda dengan proses Hashing.

Secara pengertian, proses hashing adalah sama dengan proses encryption. Hanya saja proses hashing menghasilkan sebuah checksum. Checksum atau Hash sum adalah sebuah data dengan panjang selalu tetap(bergantung pada method yang digunakan) dan dihasilkan oleh sebuah prosedur checksum function atau checksum algorithm. Checksum ini tidak dapat dikembalikan ke argument aslinya. Jika dilihat dari segi keamanan, Hashing lebih menjanjikan dibanding Encryption.

Pada kesempatan kali ini saya akan mencoba menunjukkan implementasi Hashing di MySQL. Terdapat 2 method Hashing yang dapat dipakai dalam MySQL, yaitu MD5() dan SHA1(). MD5() mengkalkulasi 128-bit Checksum dan menghasilkan binary string dengan panjang 32 bilangan hexa atau NULL jika argument yang diberikan adalah NULL. Sedangkan SHA1() mengkalkulasi 160-bit Checksum dan menghasilkan binary string dengan panjang 40 bilangan hexa atau NULL jika argument yang diberikan adalah NULL.

Jika anda belum mengikuti dua tutorial dibawah ini, mohon ikuti terlebih dahulu. Kenapa? karena semua file dan database yang dibuat disana akan digunakan kembali ditutorial ini.

Jika anda sudah mengikutinya, pastikan bahwa semua data dalam database tidak ada yang berubah. Oke, mari kita mulai tutorialnya.

1. Mengubah plain password menjadi sebuah Checksum dalam database.

Continue reading