2017
Kata Pengantar
Puji syukur saya panjatkan kehadirat Tuhan YME yang telah memberikan rahmat
serta karunia-NYA kepada saya sehingga saya berhasil menyelesaikn Tugas ini dengan
tepat waktunnya yang berjudul Tugas 2 Network Security.
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa karena dengan
rahmat, karunia, serta karunia-Nya penulis dapat menyelesaikan tugas tentang Tugas
IX Project Pengembangan Sistem Informasi ini dengan baik meskipun banyak
kekurangan didalamnya. Penulis berterima kasih pada Bapak I Wayan Ardiyasa,
S.Kom., M.MSI., selaku dosen pengajar mata kuliah Network Security yang telah
memberikan tugas ini kepada penulis.
Penulis berharap tugas ini dapat berguna dalam rangka menambah wawasan serta
pengetahuan mengenai Tugas 2 Network Security. Penulis menyadari sepenuhnya
bahwa di dalam tugas ini terdapat kekurangan dan jauh dari kata sempurna. Penulis
berharap adanya kritik, saran dan usulan demi perbaikan tugas yang telah pebulis buat
di masa yang akan datang, mengingat tidak ada sesuatu yang sempurna tanpa saran
yang membangun.
Semoga tugas ini dapat dipahami bagi siapapun yang membacanya. Sekiranya
tugas yang telah disusun ini dapat berguna bagi penulis maupun orang yang
membacanya.
Akhir kata, penulis mengucapkan terima kasih kepada semua pihak yang telah
berperan serta dalam penyusunan tugas ini dari awal sampai akhir penyelesaian.
Penulis
A. SQL Injection
SQL Injection adalah tehnik menginjeksi (memasukkan) kode SQL atau SQL
Command kedalam SQL Statement melalui field input atau URL suatu website. Kode
SQL yang diinject akan berdampak langsung pada database website tersebut, misalnya
mem-bypass autentikasi login, melakukan drop table atau mengubah data.
Mengapa demikian? karena kode SQL yang diinject juga akan ikut dijalankan
bersamaan dengan SQL Command atau query yang sudah ada. Biasanya SQL injection
terjadi akibat programmer tidak atau kurang memperhatikan input yang didapat dari
suatu field atau parameter.
Pencegahan:
Untuk pencegahan terhadap SQL Injection seperti ini, kita bisa menggunakan fungsi
mysqli_real_escape_string atau menggunakan prepared statement.
Nantinya setiap terdapat karakter escape string seperti kutip satu (') atau kutip dua ("),
akan ditambahkan karakter backslash (\) sehingga query pada test ketiga menjadi
empty atau kosong.
Gambar 8. Tes 3.2 validasi login
<?php
include "koneksi.php";
//cek inputan tidak kosong
if(!empty($_POST['username']) || !empty($_POST['password'])) {
//validasi mysqli --> setiap terdapat karakter escape string seperti kutip satu (')
//atau kutip dua ("), akan ditambahkan karakter backslash (\)
$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);
} else {
$username = null;
$password = null;
}
//mengubah (enksipsi) inputan menjadi format md5
$password = md5($password);
if (empty($username)){
echo "<script>alert('Username belum diisi')</script>";
echo "<meta http-equiv='refresh' content='1 url=login.php'>";
}else if (empty($password)){
echo "<script>alert('Password belum diisi')</script>";
echo "<meta http-equiv='refresh' content='1 url=login.php'>";
}else{
session_start();
//query untuk komunikasi ke database dengan inputan username dan password dari user
$sql = mysqli_query($con, "SELECT * FROM users WHERE username = '$username' and password =
'$password' ");
$row = mysqli_num_rows($sql);
<?php
session_start();
session_destroy();
echo "<script>alert('Terima kasih, Anda Berhasil Logout')</script>";
echo "<meta http-equiv='refresh' content='1 url=login.php'>";
?>