Cara Mengatasi Bug Sql Pada Website

Cara Mengatasi Bug Sql Pada Website - Hello whatsapp gays kembali lagi bersama saya imamkun di bloggernya team explosion squad cyber di artikel kali ini saya akan membahas tentang bug yang bernama Sql Nah di artikel kali ini saya akan mengajarkan kalian caranya mengatasi bug sql pada website, Nah sebuah serangan Sql Injection adalah sebuah metode serangan yang di lakukan oleh hacker jahat atau yang biasa disebut blackhat dengan cara memasukan / menginjeksi Sql Query / Perintah Sql melalui input data pada sebuah aplikasi. biasanya serangan ini terjadi pada kolom pencarian / search box, form ( login, daftar, dll ) Parameter, Header, HTTP, Dll. Kurang lebih gitu deh :)
Jika anda adalah seorang admin / webmaster. Maka hal ini adalah suatu yang serius bagi anda apa lagi sekarang sedang banyak / sedang ngetop banget Serangan Sql Injection ini

Contoh Source / Code Yang Vulnerable / Rentan terhadap Sql Injection
<?php
$id = $_GET['id'];
$db = mysql_connect('localhost', 'admin', '123456');
mysql_select_db("bug", $db);
$query = "SELECT * FROM pengguna WHERE id = '".$id."'";
$hasil = mysql_query($query);
echo $hasil;
?>
Nah caranya  
  • Gunakan Prepared Statement pada SQL Query anda.
Prepared Statement ini terdapat pada module PDO di MySQL ( Sudah ada diversi terbaru MySQL ), Prepared Statement Menurut w3school :
Prepared Statements and Bound Parameters. A prepared statement is a feature used to execute the same (or similar) SQL statements repeatedly with high efficiency. Prepared statements basically work like this: Prepare: An SQL statement template is created and sent to the database.
Berikut contoh code untuk memperbaiki bug SQL Injection pada code diatas. 

<?php
$db_host = "localhost";
$db_name = "admin"; // database name
$db_user = "baru"; // datebase user
$db_pass = "123456"; // database password

$koneksi = "mysql:host=$db_host;dbname=$db_name";

try
{
    $db = new PDO($koneksi, $db_user, $db_pass);  
}
catch (exception $e)
{
    echo "error";
    exit();
}
$id = $_GET['id'];
$sql = "SELECT * FROM pengguna WHERE id = $id";
$stmt = $db->prepare($sql);
$stmt->execute();
$objek = $stmt->fetchObject();
echo $objek->nama;

?>
  • Gunakan filter pada code PHP anda. 
Filter ini tentunya berguna untuk menyaring tipe input yang sedang dimasukkan oleh pengguna dan pastinya fitur Filter pada php ini juga bisa berguna untuk meminilisir serangan SQL Injection pada parameter/website anda. berikut contoh codenya:
 

<?php
$id = filter_var($_POST['id'], FILTER_VALIDATE_INT); // Filter ini berguna untuk mefilter tipe
//data integer
$nama = filter_var($_POST['nama'], FILTER_SANITIZE_STRING);//untuk tipe string
?>
  • Gunakan .htaccess untuk memfilter Query HTTP pada web server anda 
 Metode ini biasanya digunakan oleh plugin keamanan Wordpress, saya juga dulu make method ini dan lumayan ampuh untuk menangkal serangan SQL Injection dan sebagainya.
 ServerSignature Off

Options -Indexes

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK|DEBUG) [NC]
RewriteRule ^(.*)$ - [F,L]
RewriteCond %{REQUEST_URI} (timthumb\.php|phpthumb\.php|thumb\.php|thumbs\.php) [NC]
RewriteRule . - [S=1]
RewriteCond %{HTTP_USER_AGENT} (libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (<|>|'|%0A|%0D|%27|%3C|%3E|) [NC,OR]

RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|"|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]

RewriteCond %{THE_REQUEST} \?\ HTTP/ [NC,OR]

RewriteCond %{THE_REQUEST} \/\*\ HTTP/ [NC,OR]

RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]

RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]

RewriteCond %{THE_REQUEST} (%0A|%0D) [NC,OR]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]

RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]

RewriteCond %{QUERY_STRING} (\.\./|\.\.) [OR]

RewriteCond %{QUERY_STRING} ftp\: [NC,OR]

RewriteCond %{QUERY_STRING} http\: [NC,OR]

RewriteCond %{QUERY_STRING} https\: [NC,OR]

RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]

RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]

RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]

RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (\<|%3C).*iframe.*(\>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C)([^i]*i)+frame.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]

RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [NC,OR]

RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]

RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>).* [NC,OR]

RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [OR]

RewriteCond %{QUERY_STRING} (\./|\../|\.../)+(motd|etc|bin) [NC,OR]

RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1) [NC,OR]

RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|) [NC,OR]

RewriteCond %{QUERY_STRING} concat[^\(]*\( [NC,OR]

RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR]

RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC,OR]

RewriteCond %{QUERY_STRING} (;|<|>|'|"|\)|%0A|%0D|%22|%27|%3C|%3E|).*(/\*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [NC,OR]

RewriteCond %{QUERY_STRING} (sp_executesql) [NC]

RewriteRule ^(.*)$ - [F,L]
  •  Pasang WAF ( Web Application Firewall ) Pada Web Server Anda. 
 WAF ( Web Application Firewall ) ini berperan sangat penting dalam melindungi Web Server anda, Karena WAF bertugas sebagai penjaga web anda dari berbagai serangan berbahaya ( SQL Injection, XSS, Spam, CSRF, dll ).
Berikut beberapa WAF yang dapat diandalkan untuk menjaga Web anda dari serangan Hacker Jahat :3 :
Barracuda Networks Web Application Firewall
CloudFlare ( CDN sekaligus WAF )
Incapsula ( CDN sekaligus WAF )
Dan masih banyak lagi.
 

Nah mungkin cukup sekian artikel saya kali ini mengenai "  Cara Mengatasi Bug Sql Pada Website " 
dan jangan lupa follow blog ini biar tidak ketinggalan berita menarik lainnya
next jika kalian punya ide untuk di upload silahkan di comment saja di colom commentar dibawah ini saya izin pamit ea gan :)

Belum ada Komentar untuk "Cara Mengatasi Bug Sql Pada Website"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel