Bagi para pembuat antivirus mungkin masih jarang terpikir untuk memgembangkan suatu antivirus yang berbasis web, padahal banyak antivirus luar negeri sudah memiliki layanan virus scanner online sehingga pengguna jasa dapat meanfaatkan fasilitas tersebut asal terkoneksi dengan internet. Nah apakah anda tertarik untuk membuat semacam virus scanner yang bersifat online? Kali ini saya akan coba memberikan sedikit tutorial singkat (plus source) cara membuat Online Virus Scanner sederhana dengna PHP.
Basic Of Concept:
Seperti yang telah saya tulis dibeberapa buku saya terkait Antivirus, bahwa pembuatan antivirus yang paling sederhana adalah menggunakan ceksum sebagai penanda virus yang disimpan dalam suatu database (opsional). Pembuatan Scanner Virus Online kita kali ini akan memanfaatkan kalkulasi ceksum MD5 dari suatu file yang disimpan dalam database berbentuk file teks.
Setiap Virus/File yang dikirim oleh pengguna akan kita proses dengan cara berikut:
Upload File --> Kalkulasikan MD5 File --> Cocokan dengan database --> Tampilkan hasil
Pembuatan Web:
Saya anggap anda sudah memahami cara pemakaian server lokal ataupun sejenisnya untuk menginterprestasi PHP.
Buatlah suatu halaman web dengan nama index.php
- Code:
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Codenesia Online Scanner</title>
</head>
<body>
<center><b>Online Virus Scanner</b></center>
<center><i>Powered by Codenesia</i></center>
<br><br>
<form action="result.php" method="post" enctype="multipart/form-data">
<table border="0" width="200" align="center" >
<tr>
<td><input type="file" name="virus_file" size="50%"></td>
</tr>
<tr>
<td><input type="submit" value="Send Virus" name="send_virus"></td>
</tr>
</table>
<br><br><br>
<table border="1" width="200" align="center" style="border-collapse:collapse" cellspacing="1" >
<tr>
<td align="center" colspan="2"><font color="#FF0000"><strong>Iklan Buku</strong></font></td>
</tr>
<tr>
<td align="center"><img src="book.png" align="middle" width="200" height="250" /> </td>
<td align="center"><img src="book2.png" align="middle" width="200" height="250" /> </td>
</tr>
<tr>
<td align="center" colspan="2"><i>Dapatkan di toko buku terdekat..</i></td>
</tr>
</table>
</form>
Lalu buatlah halaman web dengan nama result.php
<?php
$viruspath = $_FILES['virus_file']['tmp_name'];
$virusfile = $_FILES['virus_file']['name'];
$size = $_FILES['virus_file']['size'];
move_uploaded_file($viruspath,"virus/$virusfile");
$md5file=md5_file("virus/$virusfile"); // md5 virusnya
unlink("virus/$virusfile"); // jangan sisakan file nya nanti dibuat nakal
$filedb = "db.txt";
// baca database
$handle = fopen($filedb, "r"); // dapatkan handel file
$contents = fread($handle, filesize($filedb)); // dapatkan isi file
$baris=explode("%",$contents);
fclose($handle); // jangan lupa tutup resletingnya bos
// buat perulangan sebanyak elemen dari array
// untuk mencocokan file virus atau bukan
$intCount = count($baris);
for($i=0;$i<=$intCount-2;$i++){
$virusdatabase=explode(":",$baris[0]); // parse array
if($md5file==$virusdatabase[0]){
$viresult = "infected";
$desc = $virusdatabase[1];
//echo "Virus : <b>" . $virusdatabase[1] . "</b> menurut database";
break;
}
//echo "Bukan virus menurut database";
$viresult = "clean";
$desc = "none";
}
// buat laporan
$htmltbl ="<tr><td width=\"200\" align=\"center\">";
$htmltbl .= $virusfile;
$htmltbl .= "</td><td width=\"200\" align=\"center\">";
$htmltbl .= $size . " Bytes";
$htmltbl .= "</td><td width=\"100\" align=\"center\">";
$htmltbl .= $viresult;
$htmltbl .= "</td><td width=\"100\" align=\"center\">";
$htmltbl .= $desc;
$htmltbl .= "</tr></table>";
echo $htmltbl;
echo "Ceksum : " . $md5file . "<br><br>";
?>
<b><a href="index.php">Scanner</a></b>
</body>
</html>
Buatlah database (database.txt) dengan format seperti berikut:
ceksum_virus1:nama_virus1%
ceksum_virus1:nama_virus1%
contoh isi file database.txt
9fb233e57d6e8516912fe7bfb6520783:virus mei%
9fb233e57d6e8516912fe7bfb6520784:virus cinta%
Penggunaan:
Setelah anda menambahkan database (penanda virus) pada file database.txt yang diletakan satu path dengan 2 halaman web yang kita buat sebelumnya, lalu buatlah folder bernama virus untuk menampung virus yang dikirim oleh pengguna secara sementara.
Upload semua file komponen web pada server lokal anda untuk mengujinya, misalnya anda taruh pada folder bernama “Antivirus”, maka ketikan alamat ini pada browser untuk memanggil halaman indexnya.
[You must be registered and logged in to see this link.]Maka akan muncul tampilan seperti berikut:
Upload file yang anda tambahkan atau belum tambahkan dalama database anda, melalui halaman index.php. lalu tekan tombol “Send Virus” maka akan ditampilkan suatu tabel laporan tentang file tersebut. Contoh:
Mudah kan, membuat suatu online scanner virus. Kalo mungkin kita sebelumnya membuat suatu antivirus yang berbasis desktop, sekarang saatnya untuk mencoba mengembangkan area penembangan antivirus berbasis web J. Selamat mencoba, mungkin bagi anda yang belum mengenam konsep antivirus dan pemrograman baik desktop maupun web dengan baik buku berikut dapat jadi referensi bagi anda.