Anda di halaman 1dari 37

WEB BASED PROGRAMMING LANJUTAN

SISTEM INFORMASI

SISTEM KEAMANAN WEBSITE MENGGUNAKAN PHP SECURITY

(PAPER PROJECT)

Oleh

Hendra Sasmerta 1200988913

Kelas 06PDM

Universitas Bina Nusantara

Jakarta

2011

Hendra S - WBPL
UNIVERSITAS BINA NUSANTARA

Jurusan Sistem Informasi

Semester Genap tahun 2010 / 2011

SISTEM KEAMANAN WEBSITE MENGGUNAKAN PHP SECURITY

Oleh:

Hendra Sasmerta 1200988913

Kelas 06PDM

Abstrak

Perkembangan ilmu pengetahuan dan teknologi yang kian pesat saat ini mendorong

kita untuk lebih pintar dalam memanfaatkan teknologi yang ada, terutama perkembangan

teknologi website. Perkembangan ini di dukung oleh engine yang kuat, seperti tersedianya

bahasa pemrograman PHP yang dapat menghasilkan sebuah website dinamis, dan serta

dengan PHP security yang dapat menjamin keamanan suatu data dalam website.

Kata Kunci : PHP, Security, Website

Hendra S - WBPL
BAB 1

PENDAHULUAN

1.1. Latar Belakang

Perkembangan ilmu pengetahuan dan teknologi yang kian pesat saat ini

mendorong kita untuk lebih pintar dalam memanfaatkan teknologi yang ada, terutama

perkembangan teknologi website. Antusias nya masyarakat saat ini dalam

menggunakan teknologi website yang ada sudah kita rasakan, mulai dari ketersediaan

situs – situs seperti social network, situs berita, situs jual – beli, situs hiburan dan

masih banyak lagi yang lain nya.

Hal ini tidak terlepas dari kebutuhan teknologi website yang mampu

memberikan keamanan dan kenyamanan sebuah website. Perkembangan website

sangat pesat dari website statis beralih ke website dinamis. Para web developer saat

ini berusaha mempercantik setiap website – website yang mereka bangun agar tampil

menarik dan dengan harapan dapat meningkatkan traffic kunjungan pada website

mereka. Sebagai contoh adanya website seperti www.kompas.com adalah buah

pencapaian seorang web developer dalam membangun website yang menarik. Situs

berita ini menyuguhkan berita secara update yang di kelompokkan ke berbagai

macam kategori. Kategori tersebut seperti, bola, entertainment, games, tekno,

otomotif, health, properti dan lain nya. Pembagian kategori ini dimaksudkan untuk

mempermudah user dalam memilih topik yang akan user baca. Selain memiliki

Hendra S - WBPL
tampilan yang menarik, sebuah website yang baik juga perlu memperhatikan security

nya. Penggunaan security di dalam membangun sebuah website sangat dibutuhkan

untuk menjaga keamanan sebuah website dari hal-hal yang tidak di inginkan.

Keamanan ini bisa meliputi keamanan data. Data merupakan salah satu bagian

terpenting yang harus dijaga dalam sebuah website.

Saat ini telah banyak bahasa pemrograman web yang dapat membantu para

web developer membangun website menarik sekaligus memperhatikan keamanan

website nya. Salah satu nya adalah PHP, PHP merupakan server-side scripting yang

dirancang untuk membangun website dengan tampilan dinamis. Penggunaan PHP

dapat membantu web developer membangun website yang dinamis serta aman. PHP

juga tidak mudah di bobol karena PHP berjalan dan di eksekusi di dalam server.

Karena seiring perkembangan teknologi maka banyak pula pihak-pihak yang

bermaksud meretas keamanan sebuah website, demi keuntungan pribadi. Ini jelas-

jelas meresahkan pemilik website, oleh karena itu tingkat keamanan menjadi sangat

penting dalam membangun website. Seperti pada contoh www.ibank.klikbca.com yang

merupakan website untuk nasabah bank, maka bank menerapkan sistem keamanan

berlapis pada website nya, dan para wew developer nya membangun website tersebut

dengan orientasi keamanan. Tentunya peran PHP sangat membantu dalam

mengembangkan system keamanan ini.

Oleh karena itu penulis mengangkat PHP security sebagai topik paper yang

dirasa sangat perlu kita ketahui bersama. Penulis menyadari betul betapa penting nya

keamanan sebuah website terutama dalam menjaga data-data penting agar tidak

diretas pihak-pihak tidak bertanggung jawab. PHP menjadi sebuah pilihan ketika

seseorang akan membangun website dengan orientasi keamanan website nya, karena

Hendra S - WBPL
PHP merupakan open source yang berjalan di server. Dengan menggunakan bahasa

pemrograman PHP ini, website yang dihasilkan akan lebih menarik dari segi

tampilan, dan lebih secure dari segi keamanan.

1.2. Ruang Lingkup

Dalam penulisan paper yang berjudul “Sitem Keamanan Website Menggunakan PHP

Security ” ini, penulis membatasi ruang lingkup pada :

1. Pengenalan PHP

Adalah bagian yang akan berisi pengenalan bahasa pemrograman PHP, sejarah serta

berbagai macam fungsi-fungsi dan tipe data.

2. PHP Security

Adalah system keamanan website dengan menggunakan bahasa pemrograman PHP

sebagai server-side scripting.

3. Implementasi PHP Security

Adalah bagian yang berisi implementasi PHP Security pada website yang

membutuhkan keamanan data user, khusus nya pada form Login.

1.3. Tujuan dan Manfaat

1.3.1. Tujuan

Adapun tujuan dari penulisan paper ini adalah sebagai berikut :

• Agar kita mengenal bahasa pemrograman PHP dan cara penggunaan nya.

Sehingga kita dapat belajar menggunakan PHP sebagai salah satu bahasa

pemrograman yang wajib kita ketahui dalam membangun website yang

dinamis dalam tampilan dan secure dalam keamanan.

Hendra S - WBPL
• Dapat merancang website dinamis yang berorientasi keamanan, yang

mampu menjaga keamanan data user maupun database nya. PHP security

menjadi sangat penting diketahui kita selain hanya sekedar membangun

website statis maupun dinamis yang tidak memperhatikan segi keamanan

data.

• Mampu mengembangkan PHP security ke tingkat yang lebih secure dalam

membangun sebuah website. PHP merupakan open source yang sangat

memungkinkan di modifikasi dalam mengembangkan PHP security.

1.3.2. Manfaat

Adapun manfaat dari penulisan paper ini adalah sebagai berikut :

• Mengerti cara menggunakan PHP serta teknik-teknik membangun sebuah

website.

• Dapat membangun website sendiri dengan menggunakan bahasa

pemrograman PHP.

• Mengerti konsep keamanan suatu website dengan bahasa pemrograman

PHP Security.

1.4. Metodologi Penelitian

Metodologi yang digunakan dalam penulisan paper ini dibagi menjadi dua,

diantaranya :

Hendra S - WBPL
1. Penelitian Pustaka

melakukan pengumpulan, membaca dan mempelajari buku-buku yang berkaitan

dengan topik paper yang telah ditentukan.

2. Penelitian Online

Melakukan pengumpulan informasi melalui jurnal – jurnal elektronik maupun

sumber bacaan elektronik lain nya.

1.5. Sistematika Penulisan

Untuk memberikan gambaran mengenai penulisan paper ini, maka

penulisan akan dibagi secara sistematis, yaitu :

BAB 1 PENDAHULUAN

Pada bab ini berisi tentang latar belakang penulisan paper, ruang lingkup

PHP, tujuan dan manfaat PHP, metodologi yang digunakan serta

sistematika penulisan paper ini.

BAB 2 LANDASAN TEORI

Pada bab ini berisi tentang uraian teori – teori pendukung tentang bahasa

pemrograman PHP, dan membantu sebagai landasan penulisan paper ini.

Teori – teori ini di dapat dari studi pustaka maupun secara online.

BAB 3 PEMBAHASAN

Pada bab ini akan dijelaskan secara menyeluruh mengenai pembahasan

PHP Security sebagai system keamanan sebuah website yang dinamis.

Hendra S - WBPL
BAB 4 KESIMPULAN

Pada bab ini akan dituliskan beberapa kesimpulan yang didapat dari hasil

pembahasan, pengembangan sebuah website. Selain itu akan diberikan

beberapa saran terkait dengan penerapan penggunaan bahasa

pemrograman PHP dalam membangun sebuah website, agar dikemudian

hari penggunaan PHP Scripting akan lebih maksimal.

Hendra S - WBPL
BAB 2
LANDASAN TEORI
2.1 Definisi PHP

Berdasarkan pendapat Janet Valade (2004,p9) PHP adalah open source yang banyak
digunakan dalam membangun web dinamis. PHP kepanjangan dari Hypertext Preprocessor
ini bersifat server-side yang berarti pengerjaan script dilakukan di server, kemudian hasilnya
dikirim ke browser. PHP dapat digunakan untuk menciptakan dynamic website baik itu yang
memerlukan penggunaan database ataupun tidak. Seperti halnya dengan program open source
lainnya, PHP di buat di bawah GNU (General Public License).

Salah satu kelebihan PHP dari bahasa pemrograman lain nya adalah PHP dapat berjalan pada
semua aplikasi CGI, seperti mengambil nilai form, menghasilkan halaman web yang dinamis,
serta mengirim dan menerima cookie. PHP juga dapat berkomunikasi dengan layanan –
layanan yang menggunakan protocol IMAP, SNMP, NNTP, POP3, HTTP, dan lain-lain. Dan
kelebihan PHP yang paling penting adalah kemampuan PHP untuk melakukan koneksi
dengan berbagai macam database, salah satunya adalah database MYSQL. Adapun database
lainnya yang dapat digunakan oleh PHP adalah :

• Oracle

• Sybase

• MSql

• MySQL

• Solid

• Generic ODBC

• Postgres Sql

Secara umum, penggunaan PHP dalam bahasa pemrograman selalu di awali dengan tag “<?
php”, dan ditutup dengan tag “?>”. Misalnya :

<? php echo "<p> Hello World, This my paper";?>

Dalam pernyataan tersebut, <?php adalah tag pembuka PHP, sedangkan ?> adalah tag
penutup, dan echo adalah instruksi PHP yang memberitahu PHP untuk melakukan output teks
yang mengikutinya. Output yang di tampilkan oleh browser akan seperti ini :

Hello World, This my paper

Hendra S - WBPL
Script PHP ini biasanya di apit diantara script HTML lainnya, seperti peletakan nya diantara
script <BODY></BODY>.

Seperti bahasa pemograman lainnya, PHP sangat mudah di modifikasi agar dapat
menghasilkan output yang menarik. Penggunaan PHP saat ini telah berkembang dalam fungsi
keamanan, PHP security menjadi sangat penting diketahui oleh setiap web developer.

2.2. Sejarah PHP

PHP diciptakan oleh Rasmus Leordorf, seorang programmer Unix dan Perl. Semula
PHP hanya digunakan untuk mencatat jumlah pengunjung yang melihat resume Rasmus
Lerdorf. Skrip ini selanjutnya dikemas menjadi tool yang disebut “Personal Home Page”.
Paket inilah yang menjadi cikal bakal PHP saat ini.

Pada bulan September-Oktober 1995, Rasmus menciptakan PHP/FI versi 2.0. Pada
versi ini programmer dapat menempelkan kode terstruktur di dalam tag HTML dan kode ini
juga bisa berkomunikasi dengan database dan melakukan perhitungan-perhitungan yang
kompleks sambil jalan.

Pada tanggal 6 Juni 1998, PHP Versi 3.0 berhasil dirilis. PHP 3 ini mempunyai
kinerja yang lebih tinggi, berkemampuan object-oriented, syntax highlighting, array
multidimensi dan dapat diperluas melalui mekanisme extension. Dukungan dan fitur nya pun
jauh bertambah banyak. PHP merupakan salah satu bahasa popular.

2.3. Aplikasi PHP

Banyak nya fungsi penggunaan PHP sebagai bahasa pemrograman popular menuntut
para web developer kreatif dalam mengembangkan aplikasi berbasis PHP. Beberapa diantara
aplikasi PHP tersebut yaitu :

• PHP digunakan sebagai landasan operasi pada pemrograman jaringan berbasis


web.

• PHP digunakan juga untuk pemrograman database.

• PHP digunakan juga untuk membuat aplikasi web.

Hendra S - WBPL
2.4. Kelebihan dan Kekurangan PHP

Sebagai bahasa pemrograman, PHP memiliki kelebihan serta kekurangan dalam


penggunaan nya seperti pada bahasa pemrograman lain nya. Kelebihan dan kelemahan nya
diantara nya yaitu :

Kelebihan :

• PHP menjadi popular karena kesederhanaannya dan kemampuannya dalam


menghasilkan berbagai aplikasi web seperti counter, system artikel/ CMS, e-
commerce, bulletin board, dan lain-lain.

• PHP adalah salah satu bahasa server-side scripting yang didesain khusus untuk
aplikasi web.

• PHP termasuk kedalam open source product dan telah mencapai versi 5.

• Aplikasi PHP cukup cepat dibandingkan dengan aplikasi CGI dengan Perl atau
Phyton bahkan lebih cepat di banding dengan ASP maupun Java dalam berbagai
aplikasi web.

• Tersedia baik di Windows maupun Linux, walau saat ini paling efektif di web server
Apache dan OS Linux.

• Sintaks mirip C dan mudah dipelajari.

• Komunitas yang ramai dan saling membantu, seperti di diskusiweb.com,


phpbuilder.com, phpindo.com, dan lain-lain.

• Berbagai script atau aplikasi yang gratis tersedia.

Kekurangan :

• Tidak detail untuk pengenbangan skala besar.

Hendra S - WBPL
• Tidak memiliki system pemrograman berorientasi objek yang sesungguhnya.

• Tidak bisa memisahkan antara tampilan dengan logic dengan baik.

• Kode PHP dapat dibaca semua orang, dan kompilasi hanya dapat dilakukan dengan
tool yang mahal dari Zend.

Hendra S - WBPL
BAB 3
PEMBAHASAN

3.1. Sejarah PHP

PHP adalah teknologi yang diperkenalkan tahun 1994 oleh Rasmus Lerdorf. Beberapa
versi awal yang tidak dipublikasikan digunakan pada situs pribadinya untuk mencatat siapa
saja yang mengakses daftar riwayat hidup onlinennya. Versi pertama digunakan oleh pihak
lain pada awal tahun 1995 dan dikenal sebagai Personal Home Page Tools. Terkandung
didalamnya sebuah parser engine (mesin pengurai) yang sangat disederhanakan, yang hanya
mampu mengolah macro khusus dan beberapa utilitas yang sering digunakan pada pembuatan
home page,seperti buku tamu, pencacah, dan hal semacamnya. Parser tersebut ditulis ulang
pada pertengahan 1995 dan dinamakan PHP/FI Versiaon 2. FI(Form Interprenter) sendiri
berasal dari kode lain yang ditulis juga oleh Rasmus, yang menterjemahkan HTML dari data.
Ia menggabungkan script Personal Home Page Tools dengan Form Interprenter dan
menambahkan dukungan terhadap server database yang menggunakan format mSQL
sehingga lahirlah PHP/FI. PHP/FI tumbuh dengan pesat, dan orang-orang mulai menyiapkan
kode-kode programnya supaya bisa didukung oleh PHP. Sulit memberikan data statistic yang
akurat, namun diperkirakan pada akhir 1996 PHP/FI sudah digunakan sedikitnya pada 15.000
situs web di seluruh dunia. Pada pertengahan 1997, angka tersebut berubah menjadi 50.000.
Pada saat itu juga terdapat perubahan di dalam pengembangan PHP. PHP berubah dari
proyek pribadi Rasmus menjadi sebuah tim yang lebih terorganisasi. Parsernya ditulis ulang
dari bentuk rancangan awal oleh Zeev Suraski dan Andi Gutmans, dan parser baru ini adalah
sebagai dasar PHP Version 3. Banyak kode utilitas yang berasal dari PHP/FI diport ke PHP3,
dan banyak diantaranya sudah selesai ditulis ulang secara lengkap.

Pada pertengahan 1998, baik PHP/FI maupun PHP3 dikemas bersama dengan produk-
produk komersial seperti server web StrongHold buatan C2 dan Linux RedHat, dan menurut
survei yang dilakukan oleh NetCraft, kemungkinan PHP digunakan pada lebih dari 150.000
situs web di seluruh dunia. Sebagai pembanding, angka tersebut lebih banyak daripada
pengguna server web Enterprise server buatan netscape di Internet . PHP sendiri akan selalu
berkembang dari tahun ke tahun.

Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini interpreter sudah
diimplementasikan dalam C. Dalam rilis ini disertakan juga modul-modul ekstensi yang
meningkatkan kemampuan PHP/FI secara signifikan.

Pada tahun 1997, sebuah perusahaan bernama Zend, menulis ulang interpreter PHP
menjadi lebih bersih, lebih baik dan lebih cepat. Kemudian pada Juni 1998 perusahaan

Hendra S - WBPL
tersebut merilis interpreter baru untuk PHP dan meresmikan nama rilis tersebut menjadi PHP
3.0.

Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut
dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai. Versi ini
banyak dipakai sebab versi ini mampu dipakai untuk membangun aplikasi web kompleks
tetapi tetap memiliki kecepatan proses dan stabilitas yang tinggi.

Pada Juni 2004, Zend merilis PHP 5.0. Versi ini adalah versi mutakhir dari PHP.
Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Dalam versi ini juga
dikenalkan model pemrograman berorientasi objek baru untuk menjawab perkembangan
bahas pemrograman kearah pemrograman berorientasi objek. Dan sampai pada saat ini PHP
telah sampai pada versi 5.6.2. Di versi ini peningkatkan kestabilan seri 5.6.2 dengan lebih
dari 60 perbaikan bug fix, beberapa diantaranya berhubungan dengan masalah security.

3.2. Definisi PHP

Berdasarkan pendapat Janet Valade (2004,p9) PHP adalah open source yang banyak
digunakan dalam membangun web dinamis. PHP kepanjangan dari Hypertext Preprocessor
ini bersifat server-side yang berarti pengerjaan script dilakukan di server, kemudian hasilnya
dikirim ke browser. PHP dapat digunakan untuk menciptakan dynamic website baik itu yang
memerlukan penggunaan database ataupun tidak. Seperti halnya dengan program open source
lainnya, PHP di buat di bawah GNU (General Public License).

Salah satu kelebihan PHP dari bahasa pemrograman lain nya adalah PHP dapat berjalan
pada semua aplikasi CGI, seperti mengambil nilai form, menghasilkan halaman web yang
dinamis, serta mengirim dan menerima cookie. PHP juga dapat berkomunikasi dengan
layanan – layanan yang menggunakan protocol IMAP, SNMP, NNTP, POP3, HTTP, dan
lain-lain. Dan kelebihan PHP yang paling penting adalah kemampuan PHP untuk melakukan
koneksi dengan berbagai macam database, salah satunya adalah database MYSQL. Adapun
database lainnya yang dapat digunakan oleh PHP adalah :

• Oracle

• Sybase

• MSql

• MySQL

• Solid

• Generic ODBC

• Postgres Sql

Hendra S - WBPL
Secara umum, penggunaan PHP dalam bahasa pemrograman selalu di awali dengan tag “<?
php”, dan ditutup dengan tag “?>”. Misalnya :

<? php echo "<p> Hello World, This my paper";?>

Dalam pernyataan tersebut, <?php adalah tag pembuka PHP, sedangkan ?> adalah tag
penutup, dan echo adalah instruksi PHP yang memberitahu PHP untuk melakukan output teks
yang mengikutinya. Output yang di tampilkan oleh browser akan seperti ini :

Hello World, This my paper

Script PHP ini biasanya di apit diantara script HTML lainnya, seperti peletakan nya diantara
script <BODY></BODY>.

Seperti bahasa pemograman lainnya, PHP sangat mudah di modifikasi agar dapat
menghasilkan output yang menarik. Penggunaan PHP saat ini telah berkembang dalam fungsi
keamanan, PHP security menjadi sangat penting diketahui oleh setiap web developer.

3.3. Instalasi PHP Pada Komputer

Sebelum kita dapat masuk dan mempelajari PHP, sebaik nya kita telah melakukan
instalasi PHP di dalam personal komputer kita. Kita dapat menggunakan XAMPP. XAMPP
adalah perangkat lunak bebas, yang mendukung banyak sistem operasi, merupakan kompilasi
dari beberapa program. Selain XAMPP, kita membutuhkan PHP installer, yang dapat di
download melalui situs resmi PHP.

Berikut adalah cara menginstall PHP versi 5 ke dalam personal computer :

• Jalankan PHP installer

Hendra S - WBPL
Hendra S - WBPL
• Pilih Apache 2.2 Module

Hendra S - WBPL
• Pilih lokasi Apache diinstall

Hendra S - WBPL
• Pilih extension yang diinginkan dalam hal ini GD2 dan MySQL.

Hendra S - WBPL
• Pilih Finish ketika instalasi telah selesai

Hendra S - WBPL
Setelah proses instalasi selesai, kita perlu juga melakukan instalasi XAMPP yang akan
digunakan sebagai server local. Kemudian, apabila XAMPP telah selesai, maka kita telah
dapat melakukan pemrograman PHP.

Adapun aplikasi yang dapat digunkanan untuk membangun PHP adalah menggunakan :

• Adobe Dreamweaver

• Microsoft Expression Web 4

3.4. Security

Untuk membuat sebuah system yang aman sempurna secara teori adalah tidak
mungkin. Seandainnya kita mampu mem-validasi semua input dengan retina scan atau sidik
jari, maka kita akan mendapatkan system yang sangat aman, tetapi hal ini akan menyusahkan
dari sisi user, dan tidak disukai. Pada saat ini didalam pemrograman, untuk mem-validasi dari
data input hanya menggunakan encrypted cookies.

Beberapa hal yang perlu diperhatikan dalam langkah percobaan para cracker untuk
memboikot akses website kita antara lain :
1. Melalui URL (method GET)
2. Melalui media input yang terdapat dalam form (method POST)

Hendra S - WBPL
Sebagaimana kita ketahui bahwa terdapat 2 cara umum pengiriman variable dalam PHP yaitu
GET dan POST sehingga perlu penanganan khusus dalam penerimaan serta pengiriman
variable tersebut.

Untuk method POST :


Method POST merupakan penangkapan variable dari media input yang terdapat dalam
FORM.

1. Batasi jumlah karakter (maxlength)


Pembatasan jumlah karakter dalam media input sangat penting sehingga tidak dimungkinkan
penulisan script seperti javascript pada inputbox tersebut.
Contoh implementasi : <input name=”_cari” maxlength=”10″ />
Titik rawan : Input Login (username dan password), Input search

2. Lapisi dengan penahan kutip atau addslashes()


Fungsi PHP ini akan membantu kita menambahkan tanda kutip (‘) pada setiap karakter garing
(/) sehingga dapat mencegah timbulnya efek SQL injection. Saya rasa teknik hacking ini
cukup populer diantara anda. Penambahan kutip akan membuat garing menjadi bertipe string
sehingga tidak dianggap sebagai salah satu perintah query pada MySQL / SQL.
Contoh implementasi : addslashes($_POST['_username'])
Titik rawan : Form Login

3. Lapisi dengan penahan tag atau htmlspecialchars()


Untuk mencegah terjadinya teknik hacking xss atau javascript injection maka ada baiknya
kita menambahkan fungsi tersebut. Hal ini akan membuat tag html maupun javascript
memiliki tipe data string sehingga tidak akan dieksekusi oleh browser.
Apabila script dimungkinkan dalam media input sehingga masuk ke dalam database dan saat
browser membuka halaman yang terkontaminasi tersebut maka browser akan melakukan
eksekusi terhadap perintah tersebut yang biasanya dalam bentuk javascript.
Contoh implementasi : htmlspecialchars($_POST['pesan'])
Titik rawan : Form Login, Form Kontak Admin

4. Perhatikan nama media input


Sudah saatnya kita berusaha sedikit lebih unik dalam menentukan nama pada media input
kita sehingga mempersulit beberapa tools penjahat yang menggunakan library (kamus kata)
dalam penentuan nama variable incarannya. Misalnya pada media input login tambahkan
garis bawah. Tentu anda memiliki ide sendiri dalam
mengimplementasikan hal ini.
Contoh implementasi : <input name=”_username” />
Titik rawan : Input Login (username dan password)

Untuk method GET :


Method get merupakan penangkapan variable yang berasal dari URL.

1. Gunakan .htaccess
Sebenarnya ini adalah sebuah metode yang menjadikan website kita seakan memiliki
struktur direktori yang luas, padahal itu adalah variable. Sehingga memecah

Hendra S - WBPL
konsentrasi dari pengunjung yang berniat isenk. Bila halaman tidak ditemukan maka
kita dapat meredirectnya ke halaman 404 kesayangan kita.

Implementasi :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L]
</IfModule>

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC]
RewriteRule ^(.*) http://www.mydomain.com/$1 [L,R=301]

2. Hindari $_REQUEST()
Metode ini digunakan untuk menangkap variable dalam bentuk POST dan GET. Ada kalanya
kita membutuhkan metode penerimaan variable dengan menggunakan fungsi ini, tetapi
batasilah penggunaannya karena tanpa disadari suatu saat anda akan mendapatkan masalah
karena hal ini. Dan bila kita telah terlanjur menggunakannya pada seluruh aplikasi kita maka
kita akan sulit untuk merubah (Bisa, dengan memilah mana yang tidak perlu dan benar-benar
menggunakan.).

Seorang web developer juga perlu memperhatikan karakteristik dari keamanan sebelum
membangun proyek website, yaitu :

• Keamanan adalah pengukuran


Sangat disayangkan bahwa banyak proyek perangkat lunak daftar keamanan sebagai
syarat sederhana yang harus dipenuhi. Apakah aman? Pertanyaan ini adalah sebagai subjektif
seperti menanyakan apakah ada sesuatu yang kurang aman.

• Keamanan harus diimbangi dengan biaya


Sangat mudah dan relatif murah untuk memberikan tingkat keamanan yang cukup untuk
sebagian besar aplikasi. Namun, jika kebutuhan keamanan sangat menuntut, karena dengan
alasan melindungi informasi yang sangat berharga, maka kita harus mencapai tingkat
keamanan yang lebih tinggi dengan biaya meningkat. Biaya ini harus disertakan dalam
anggaran proyek.

• Keamanan harus diimbangi dengan kegunaan


Hal ini sering terjadi bahwa langkah-langkah yang diambil untuk meningkatkan keamanan
aplikasi web juga mengurangi kegunaan. Password, timeout sesion, dan kontrol akses semua
menciptakan kendala bagi user. Kadang diperlukan untuk memberikan keamanan yang
memadai, namun tidak ada satu solusi yang tepat untuk setiap aplikasi tersebut.

Hendra S - WBPL
• Keamanan harus menjadi bagian dari desain
Jika keamanan bukan bagian dari desain web aplikasi, maka dengan keamanan website
tersebut kita ditakdirkan untuk terus-menerus mengatasi kerentanan keamanan baru.

Karakteristik tersebut haruslah di perhatikan oleh web developer, agar penggunaan PHP
security dapat berjalan secara optimal di sebuah aplikasi website. Adapun hal-hal mendasar
lainnya yang perlu web developer pelajari adalah :

1. Register_Globals ON/OFF PHP Assc. Menyarankan untuk menge-set


Register_Globals pada kondisi OFF, yang artinnya Auto global untuk variable akan
OFF. Untuk itu programmer harus mendefinisikan asal dari semua data variable yang
masuk, misalnnya dari POST, GET, COOKIES, SESSION, dsb. Pada saat ini para
penyedia public hosting menge-set Globals_Register pada kondisi berbeda-beda. Bagi
yang tidak mau repot dan pusing karena mendapat pertanyaan dari para konsumen,
mereka biasannya akan menge-set pada kondisi ON. Bagi para pengguna public
hosting, bisa menge-set Register_global pada file htacces yang biasannya diberikan
dalam keadaan kosong dan kita bisa tambahkan setting sesuai keinginan kita. Atau
kita juga bisa meng-set menggunakan sebuah PHP script (sebagai emulator) yang
ditempatkan pada setiap halaman.

2. Cara install PHP Pada server (di lakukan oleh hosting provider) Ada dua cara untuk
menginstall PHP yang biasa dilakukan, yaitu sbb: a.) PHP sebagai Apache Module b.)
PHP sebagai CGI binary. Hal ini akan menghasilkan kemungkinan cara penyerangan
oleh hacker yang berbeda pula.

3. File Systems Security. Dalam pemrograman PHP, file yang kita tempatkan di internet
server memungkinkan untuk dijangkau oleh para hacker, misalnnya menghapus,
memerintahkan mencetak file yang sangat besar dsb. Untuk itu kita harus
memperhatikan pemrograman yang berhubungan dengan acces ke file systems,
misalnnya kita harus mempergunakan limited permission kepada user dan megecek
varibel input.

4. Database Security PHP Assc. menyarakan untuk memisahkan previlage untuk acces
database bagi owner(superuser- admin) dan user biasa. Hal ini akan memperkecil
kemungkinan kerusakan database karena hacker apabila hacker mampu membobol
masuk sebagai user biasa.

5. Menyembunyikan PHP pada URL. Hal ini tidak significant, tetapi bisa memperlambat
laju penyerangan para hacker. Hal ini bisa dilakukan dengan menambahkan setting di
htacces atau fasilitas lain yang disediakan oleh hosting provider.

6. Setting Error reporting. Para hacker biasanya melakukan penyerangan dengan cara
memunculkan error pada sytems dan mengumpulkan data yang berguna bagi mereka
untuk melakukan penyerangan berikutnnya. Sementara dari sisi owner, membutuhkan
data error untuk mengetahui kesalahan yang terjadi. Untuk itu kita harus tahu cara

Hendra S - WBPL
mensetting error reporting sesuai kebutuhan kita.

7. Magic quotes Magic quotes adalah prosses yang secara otomatis menolak data yang
masuk pada script php. Untuk itu sebaiknnya magic quotes diset pada kondisi OFF
dan kita tempatkan script pengganti.

Selain itu, web developer juga perlu mengetahui hal-hal yang harus diwaspadai dalam
aplikasi web, sehingga web developer dapat mengantisipasi nya. Berikut beberapa hal
tersebut :

da 5 kelemahan aplikasi web yang harus diwaspadai. Adapun hal tersebut adalah :

1. Remote code execution

Penyebabnya adalah kesalahan dalam coding. Akibat yang ditimbulkannya memungkinkan si


cracker untuk menjalankan aplikasi secara sewenang-wenang dan mengambil informasi
berharga di dalamnya.

Agak sulit untuk menemukan code ini saat penetration testing, namun akan ketahuan jika kita
membaca ulang source code nya (glegggg… baca ulaaaaaang!!!???). Karena itu perlu
dilakukan pengujian aplikasi secara berulang dan teliti untuk mencegah munculnya celah ini.

2. SQL Injection

SQL Injection termasuk cara penyerangan yang sudah lamaaaa sekali adanya. Namun para
cracker masih banyak yang sering menggunakan cara ini. Cara ini memungkinkan cracker
untuk mengambil data dari database. Dampak dari serangan ini bisa berbagai macam, dari
cuma sekedar hanya bisa mengambil data, sampai dengan memodifikasi isi database.

3. Format String Vulnerabilities

Hal ini disebabkan masalah validasi karakter yang kurang sehingga menjadi celah tersendiri
untuk para cracker. Oleh karena itu sebaiknya turut sediakan juga validator untuk karakter-
karakter inputan dari user.

4. Cross Site Scripting (XSS)

Cara ini adalah dengan menyisipkan sebuah URL jahat pada korban agar dibuka oleh korban.
Sehingga saat korban meng-klik URL tersebut, maka cracker akan mengeksekusi kode jahat
pada browser korban. Semisal code javascript jahat.

5. Username Enumeration

Ini adalah celah yang digunakan cracker untuk melakukan serangan dengan memanfaatkan
pesan error yang muncul saat cracker melakukan login test.

Hendra S - WBPL
3.5. Jenis Kemanan dengan PHP Security

Permasalahan – permasalahan keamanan haruslah dapat di antisipasi oleh seorang web


developer dalam membangun website. Jika seorang web developer ingin membangun
website yang mengharuskan pengguna untuk mendaftar itu tanggung jawab web
developer untuk menjaga password user aman. Dan jika Anda menyimpan password
dalam teks biasa maka tidak melakukan pekerjaan dengan benar. Script PHP
menyediakan berbagai cara keamanan yang dapat digunakan seperti MD5, SHA-1, SHA-
2, SHA-3 atau RIPEMD-160.

• MD5

Adalah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-
bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-
macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan
pengujian integritas sebuah file.

Langkah-langkah proses pembuatan message digest


pada MD5 adalah sebagai berikut :
1. Penambahan bit pengganjal (padding bits)
2. Penambahan nilai panjang pesan semula
3. Inisialisasi penyangga (buffer) MD
4. Pengolahan pesan dalam blok berukuran 512 bit.

Berikut pseudocode nya :

//Mendefinisikan r sebagai berikut


var int[64] r, k
r[ 0..15] := {7, 12, 17, 22, 7,
12, 17, 22, 7, 12, 17, 22, 7,
12, 17, 22}
r[16..31] := {5, 9, 14, 20, 5,
9, 14, 20, 5, 9, 14, 20, 5, 9,
14, 20}
r[32..47] := {4, 11, 16, 23, 4,
11, 16, 23, 4, 11, 16, 23, 4,
11, 16, 23}
r[48..63] := {6, 10, 15, 21, 6,
10, 15, 21, 6, 10, 15, 21, 6,
10, 15, 21}
//Menggunakan bagian fraksional
biner dari integral sinus sebagai
konstanta:
for i from 0 to 63
k[i] := floor(abs(sin(i + 1))
× 2^32)
//Inisialisasi variabel:
var int h0 := 0x67452301

Hendra S - WBPL
var int h1 := 0xEFCDAB89
var int h2 := 0x98BADCFE
var int h3 := 0x10325476
//Pemrosesan awal:
append "1" bit to message
append "0" bits until message
length in bits _ 448 (mod 512)
append bit length of message as
64-bit little-endian integer to
message
//Pengolahan pesan paada kondisi
gumpalan 512-bit:
for each 512-bit chunk of message
break chunk into sixteen 32-
bit little-endian words w(i), 0 _i _ 15
//Inisialisasi nilai hash pada
gumpalan ini:
var int a := h0
var int b := h1
var int c := h2
var int d := h3
//Kalang utama:
for i from 0 to 63
if 0 _ i _ 15 then
f := (b and c) or
((not b) and d)
g := i
else if 16 _ i _ 31
f := (d and b) or
((not d) and c)
g := (5×i + 1) mod 16
else if 32 _ i _ 47
f := b xor c xor d
g := (3×i + 5) mod 16
else if 48 _ i _ 63
f := c xor (b or (not
d))
g := (7×i) mod 16
temp := d
d := c
c := b
b := ((a + f + k(i) +
w(g)) leftrotate r(i)) + b
a := temp
//Tambahkan hash dari gumpalan
sebagai hasil:
h0 := h0 + a
h1 := h1 + b

Hendra S - WBPL
h2 := h2 + c
h3 := h3 + d
var int digest := h0 append h1
append h2 append h3 //(diwujudkan
dalam little-endian)

• SHA
Adalah Secure Hash Algorithm adalah suatu algoritma fungsi hash yang dirancang
oleh National Security Agency (NSA) dan diperkenalkan oleh NIST sebagai U.S. Federal
Information Processing Standard. SHA dapat dianggap sebagai kelanjutan pendahulunya
yaitu MD5 yang telah digunakan secara luas. SHA merupakan keluarga fungsi hash satu-
arah. SHA-1 sudah diimplementasikan dalam berbagai aplikasi dan protokol keamanan
seperti TLS, SSL, PGP, SSH, S/MIME, dam Ipsec. Terdapat beberapa macam varian SHA
yaitu dimulai dari SHA-0, SHA-1, SHA-224, SHA-256. SHA-1 menerima masukkan berupa
pesan dengan ukuran maksimum adalah 264 bit dan menghasilkan message digest yang
panjangnya 160 bit, lebih panjang dari yang dihasilkan oleh MD5 yaitu 128 bit. Langkah
langkah proses SHA-1 secara garis besar adalah sebagai berikut :

1. Penambahan bit-bit pengganjal (padding bits)


2. Penambahan nilai panjang pesan semula
3. Inisialisasi penyangga (buffer) MD
4. Pengelolaan pesan dalam blok berukuran 512 bit.

Pada tahun 2005 Rijmen dan Oswald mempublikasikan serangan pada versi SHA-1 yang
direduksi (hanya 53 looping dari 80) dan menemukan kolisi dengan kompleksitas sekitar 280
operasi. Dan pada Februari 2005, Xiayoun Wang, Yiqun Lisa Yin, dan Hongbo Yo
empublikasikan serangan yang dapat menemukan kolisi pada veri penuh SHA-1, yang
membutuhkan sekitar 269 operasi.
Pseudocode untuk SHA-1 adalah sebagai berikut :

Initialize variables:
h0 = 0x67452301
h1 = 0xEFCDAB89
h2 = 0x98BADCFE
h3 = 0x10325476
h4 = 0xC3D2E1F0
Pre-processing:
append the bit '1' to the message
append k bits '0', where k is the
minimum number _ 0 such that the
resulting message
length (in bits) is congruent
to 448 (mod 512)
append length of message (before
pre-processing), in bits, as 64-
bit big-endian integer

Hendra S - WBPL
Process the message in successive
512-bit chunks:
break message into 512-bit chunks
for each chunk
break chunk into sixteen 32-
bit big-endian words w[i], 0 _ i _
15
Extend the sixteen 32-bit
words into eighty 32-bit words:
for i from 16 to 79
w[i] = (w[i-3] xor w[i-8]
xor w[i-14] xor w[i-16])
leftrotate 1
Initialize hash value for this
chunk:
a = h0
b = h1
c = h2
d = h3
e = h4
Main loop:
for i from 0 to 79
if 0 _ i _ 19 then
f = (b and c) or ((not
b) and d)
k = 0x5A827999
else if 20 _ i _ 39
f = b xor c xor d
k = 0x6ED9EBA1
else if 40 _ i _ 59
f = (b and c) or (b
and d) or (c and d)
k = 0x8F1BBCDC
else if 60 _ i _ 79
f = b xor c xor d
k = 0xCA62C1D6
temp = (a leftrotate 5) +
f + e + k + w[i]
e=d
d=c
c = b leftrotate 30
b=a
a = temp
Add this chunk's hash to
result so far:
h0 = h0 + a
h1 = h1 + b
h2 = h2 + c

Hendra S - WBPL
h3 = h3 + d
h4 = h4 + e
Produce the final hash value (bigendian):
digest = hash = h0 append h1
append h2 append h3 append h4

• RIPEMD (RACE Integrity Primitives Evaluation Message Digest)


Adalah cryptographic hash berdasarkan MD4. RIPEMD yang sudah terbukti memiliki
kelemahan dan telah digantikan oleh RIPEMD-128 dan RIPMD-160. Ini adalah fungsi hash
kriptografi dirancang oleh Hans Dobbertin, Antoon Bosselaers, dan Bart Preneel.
Penggunaan RIPEMD di dalam sebuah PHP dapat memberikan ketahanan keamanan sebuah
website di dalam server serta jaringan.
Contoh dari RIPEMD adalah :

if (argv.length < 2) {
println("You didn't specify a file to hash.");
println("Use 'java RIPEMD160 -file <filename>'");
throw new Exception("You didn't specify a file to hash");
}

String filename = argv[1];


JSAFE_MessageDigest digestor = null;
String inputFileName = null;
int blockSize = 4096;
byte [] inputBlock = new byte[ blockSize ];
File inputFile = null;
FileInputStream fis = null;

println("Beginning RipeMD Example.");

// When using a FIPS 140 compliant version of the toolkit,


// check that the required power-up self-tests passed
// before proceeding.
if (CryptoJ.isFIPS140Compliant() && !CryptoJ.selfTestPassed()) {
println("Crypto-J is disabled, power-up self-testing failed");
return;
}

Semua tesebut adalah merupakan teknik security pada PHP. Yang secara umum digunakan
pada form login sebuah website. Teknik tersebut merupakan kriptografi dan encrypt suatu
inputan yang di terima dari user. Dengan menggunakan teknik ini, sangat sulit bagi seorang
cracker meretas halaman login website.

Hendra S - WBPL
3.6. PHP Security pada Form Login

Sebuah website yang baik adalah memperhatikan interface serta keamanan nya.
Begitu pula dengan keamanan suatu form login, yang digunakan seorang user untuk
masuk ke dalam website tertentu. Sangat banyak website saat ini yang
mengharuskan setiap user menjadi member untuk dapat mengakses website
tersebut. Hal ini jelas di awali dengan Login ke sebuah form yang telah disediakan.
Akan menjadi sangat tidak aman apabila form login tersebut dapat diretas oleh
cracker yang bermaksud jahat, oleh karena itu seorang web developer perlu
memperhatikan hal ini. Saat ini, PHP telah memberikan berbagai solusi
pengembangan keamanan dengan menggunakan script nya.

Contoh form login sebuah website :

Login dan juga Logout hampir selalu ada dalam semua sistem / aplikasi yang
didevelop dengan bahasa pemrograman tertentu, dalam kasus kali ini penulis akan
memberi contoh membangun form login dengan framework PHP CodeIgniter.
Konsep dasar dari Login adalah mencocokkan username dan password yang
dimasukkan oleh user dengan daftar username+password yang tersimpan dalam
database. Dengan alasan keamanan, biasanya password disimpan dalam database
dengan menggunakan fungsi MD5. MD5 adalah salah satu fungsi hash (satu arah)
yang cukup terkenal dalam kriptografi, biasa digunakan untuk autentifikasi user.
Sedangkan Logout memiliki konsep dasar yang cukup sederhana, yaitu dengan
men-destroy session dari user yang login tersebut.

Untuk membangun sebuah form login, kita perlu membuat database terlebih dahulu.
Dan kemudian dilanjutkan membuat form dengan script berikut ini :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Login Paper</title>
<center>
<h2> <b> Login with CI </b> <h2>
<form action="<?=base_url();?>login/proseslogin" method="post">
<table border="0" align="center">
<tr>
<td> Username</td>
<td> <input name="username" type="text"> </td>
</tr>
<tr>
<td> Password</td>
<td> <input name="password" type="password"> </td>

Hendra S - WBPL
</tr>
<tr>
<td>&nbsp; </td>
<td> <input name="submit" type="submit" value="login"> </td>
</tr>
</table>
</form>
<?php if(isset($error)) echo "<b><span style='color:red;'>$error</span></b>";
if(isset($logout)) echo "<b><span style='color:red;'>$logout</span></b>"; ?>
</center>
</body></html>

Setelah membuat script seperti di atas, maka kita harus menyimpan nya. Dan dapat
diberi nama login_view.php. Kemudian masukkan file ini ke dalam folder di dalam
folder htdocs yang ada pada XAMPP. Selanjutnya kita akan membuat controller
Login dan Logout nya.

<?php
class Login extends Controller {
//constructor
function login() {
parent::Controller();
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->library('session');
}
//index for showing the login form
function index() {
$this->load->view('login_view');
}
//this function will do the login process
function proseslogin() {
$username = $this->input->post('username'); //read the username that filled by the
user
$password = $this->input->post('password'); //read the password that filled by the
user
$passwordx = md5($password); //this is for change $password into MD5 form
//the query is to matching the username+password user with username+password
from database
$q = $this->db->query("SELECT * FROM tb_user WHERE username='$username'
AND userpass='$passwordx'");
if ($q->num_rows() == 1) {
// if the query is TRUE, then save the username into session and load the welcome
view
$nama = $q->row()->username;
$this->session->set_userdata('username',$nama);

Hendra S - WBPL
$data['welcome'] = "Welcome $nama";
$this->load->view('welcome_view', $data);
}
else {
// query error
$data['error']='!! Wrong Username or Password !!';
$this->load->view('login_view', $data);
}
}
//to do logout process
function logout() {
$this->session->sess_destroy();
$data['logout'] = 'You have been logged out.';
$this->load->view('login_view', $data);
}
}
?>
Simpan dengan nama login.php dalam folder yang sama pada login_view.php.
Selanjutnya kita akan membuat pesan sukses apabila form login berhasil masuk,
berikut ini :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Login with CI</title>
<center>
<?php if(isset($welcome)) echo "<h2><span
style='color:red;'>$welcome</span></h2>";
echo "<br/>";
echo anchor("login/logout", 'Logout') ?>
</center>
</body></html>

Kemudian simpan dengan nama welcome_view.php dalam folder yang sama di


htdocs yang ada pada XAMPP.
Setelah selesai pada tahap scripting, sekarang kita dapat coba menjalankan nya
dengan mengaktifkan XAMPP yang telah kita install sebelum nya. Masukkan
http://localhost/namafolder/login.php, maka apabila berhasil kita akan mendapati
tampilan seperti ini :

Hendra S - WBPL
Apabila tampilan yang muncul seperti di atas, kita tinggal memasukkan username
dan password yang telah kita setting sebelum nya di dalam database. Dan, apabila
password serta username salah, maka aka nada pesan salah pada interface form
login. Seperti pada berikut :

Tampilan di atas adalah tampilan yang akan muncul apabila username atau
password yang di input salah. Demikian dengan website lain pada umumnya yang
menggunakan MD5 sebagai salah satu security dalam PHP.

Semua teknik yang dilakukan pada website lainnya, khusus nya form login adalah
sama, yaitu dengan mengenkripsi password dan username user. MD5 maupun SHA
dapat menjadi solusi di dalam PHP Security. Semua dapat digunakan untuk hal
keamanan. Karena keamanan yang baik akan menciptakan kenyamanan bagi user.

Hendra S - WBPL
BAB 4

KESIMPULAN

KESIMPULAN

Berdasarkan paper yang telah penulis buat mengenai “Sistem Keamanan Website

Menggunakan PHP Security” serta membahas bagian penting keamanan dan system

keamanan PHP dengan menggunakan PHP Security, maka penulis menyadari betul bahwa

sangat penting nya suatu keamanan website. Hal ini sangat perlu guna menjaga ketahanan

website juga menjaga kepercayaan user terhadap kita. Seorang web developer kedepannya

haruslah memperhatikan keamanan website sebagai hal yang serius, sehingga diharapkan

terhindar dari hal-hal yang tidak di inginkan.

Penulis yang dalam hal ini masih dalam tahap pembelajaran, termasuk mempelajari

tingkat keamanan pada PHP, merasa masih perlu belajar lebih dalam agar dapat membangun

website yang menarik, dinamis, dan juga memiliki tingkat keamanan yang tinggi.

Hendra S - WBPL
DAFTAR PUSTAKA

Alshanetsky, Llia.(2005) Architect's Guide to PHP Security. Nanobooks, USA.

http://duniamaya.all-forum.net/t125-definisi-php, 02-04-2011, 20 : 40 WIB

http://blog.cicurug.com/teknologi/sejarah-php-dan-perkembangannya/, 02-04-2011,

22:13 WIB

http://f4bregaz.blogspot.com/2009/02/sejarah-php.html, 03-04-2011, 08:26 WIB

http://itx.web.id/php/sistem-login-simple-md5-logout-dengan-codeigniter/, 03-04-

2011, 08:30 WIB

http://www.prowebpro.com/articles/instalasi_php_windows.php, 04-04-2011, 14:20

WIB

Hendra S - WBPL
DAFTAR RIWAYAT HIDUP

Nama : Hendra Sasmerta

Tempat, tanggal lahir : Lampung, 18-05-1989

Jenis Kelamin : Laki-laki

Alamat : Jl. Salam 4, No 23. Kemanggisan

Jakarta Barat

No. Telepon : 021-83823319 / 085369031118

Riwayat pendidikan dan kursus : SDN 04 Gisting, Lampung


(1995 - 2001)

SMP Muhammadiyah 1, Lampung

(2001 - 2004)

SMA Muhammadiyah 1, Lampung (2004 - 2007)

Universitas Bina Nusantara


(2008 - sekarang)

Jurusan Sistem Informasi

Pengalaman kerja : -Online Flashdisk Store

Hendra S - WBPL

Anda mungkin juga menyukai