SISTEM INFORMASI
(PAPER PROJECT)
Oleh
Kelas 06PDM
Jakarta
2011
Hendra S - WBPL
UNIVERSITAS BINA NUSANTARA
Oleh:
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.
Hendra S - WBPL
BAB 1
PENDAHULUAN
Perkembangan ilmu pengetahuan dan teknologi yang kian pesat saat ini
mendorong kita untuk lebih pintar dalam memanfaatkan teknologi yang ada, terutama
menggunakan teknologi website yang ada sudah kita rasakan, mulai dari ketersediaan
situs – situs seperti social network, situs berita, situs jual – beli, situs hiburan dan
Hal ini tidak terlepas dari kebutuhan teknologi website yang mampu
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
pencapaian seorang web developer dalam membangun website yang menarik. Situs
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
untuk menjaga keamanan sebuah website dari hal-hal yang tidak di inginkan.
Keamanan ini bisa meliputi keamanan data. Data merupakan salah satu bagian
Saat ini telah banyak bahasa pemrograman web yang dapat membantu para
website nya. Salah satu nya adalah PHP, PHP merupakan server-side scripting yang
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.
bermaksud meretas keamanan sebuah website, demi keuntungan pribadi. Ini jelas-
jelas meresahkan pemilik website, oleh karena itu tingkat keamanan menjadi sangat
merupakan website untuk nasabah bank, maka bank menerapkan sistem keamanan
berlapis pada website nya, dan para wew developer nya membangun website tersebut
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
Dalam penulisan paper yang berjudul “Sitem Keamanan Website Menggunakan PHP
1. Pengenalan PHP
Adalah bagian yang akan berisi pengenalan bahasa pemrograman PHP, sejarah serta
2. PHP Security
Adalah bagian yang berisi implementasi PHP Security pada website yang
1.3.1. Tujuan
• Agar kita mengenal bahasa pemrograman PHP dan cara penggunaan nya.
Sehingga kita dapat belajar menggunakan PHP sebagai salah satu bahasa
Hendra S - WBPL
• Dapat merancang website dinamis yang berorientasi keamanan, yang
mampu menjaga keamanan data user maupun database nya. PHP security
data.
1.3.2. Manfaat
website.
pemrograman PHP.
PHP Security.
Metodologi yang digunakan dalam penulisan paper ini dibagi menjadi dua,
diantaranya :
Hendra S - WBPL
1. Penelitian Pustaka
2. Penelitian Online
BAB 1 PENDAHULUAN
Pada bab ini berisi tentang latar belakang penulisan paper, ruang lingkup
Pada bab ini berisi tentang uraian teori – teori pendukung tentang bahasa
Teori – teori ini di dapat dari studi pustaka maupun secara online.
BAB 3 PEMBAHASAN
Hendra S - WBPL
BAB 4 KESIMPULAN
Pada bab ini akan dituliskan beberapa kesimpulan yang didapat dari hasil
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 :
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 :
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.
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.
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 :
Hendra S - WBPL
2.4. Kelebihan dan Kekurangan PHP
Kelebihan :
• 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.
Kekurangan :
Hendra S - WBPL
• Tidak memiliki system pemrograman berorientasi objek yang sesungguhnya.
• Kode PHP dapat dibaca semua orang, dan kompilasi hanya dapat dilakukan dengan
tool yang mahal dari Zend.
Hendra S - WBPL
BAB 3
PEMBAHASAN
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.
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 :
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 :
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.
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.
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
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.
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 :
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 :
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 :
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.
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.
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
• 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.
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 :
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
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");
}
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.
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 :
Hendra S - WBPL
</tr>
<tr>
<td> </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 :
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
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
http://blog.cicurug.com/teknologi/sejarah-php-dan-perkembangannya/, 02-04-2011,
22:13 WIB
http://itx.web.id/php/sistem-login-simple-md5-logout-dengan-codeigniter/, 03-04-
WIB
Hendra S - WBPL
DAFTAR RIWAYAT HIDUP
Jakarta Barat
(2001 - 2004)
Hendra S - WBPL