Devilzc0de Forum Follow @devilzc0de
  • Home
  • Hacking
  • Networking
  • Programming
  • O.S
  • Server
  • Tweets
  • Search
  • Member List
  • Calendar
Current time: 06-19-2013, 07:26 AM Hello There, Guest! (Login — Register)
Devilzc0de Forum › Information Technology › Programming › PHP v
« Previous 1 ... 12 13 14 15 16 ... 32 Next »

[Tutor] Cara mencegah SQL Injection

Home General Computer Multimedia Business Lounge

Pages (3): 1 2 3 Next »
Post Reply 
Tweet
Threaded Mode | Linear Mode
Tutor Cara mencegah SQL Injection
02-07-2011, 01:49 AM (This post was last modified: 03-11-2011 05:21 PM by android2009.)
Post: #1
android2009 Offline
./Devilz Officer
Posts: 81
Joined: Dec 2009
Reputation: 3
Cara mencegah SQL Injection
Untuk mencegah terjadinya SQL Injection maka input harus di filter terlebih dahulu untuk menghilangkan karakter-karakter yang tidak diinginkan

ini contoh sebuah fungsi untuk mem-filter input dari user

anggap saja nama filenya adalah sqlfilter.php
Code:
<?php
function SQLFilter($val){
// Karakter yang sering digunakan untuk sqlInjection
$char = array ('-','/','\\',',','.','#',':',';','\'','"',"'",'[',']','{','}',')','(','|','`','~','!','@','%','$','^','&','*','=','?','+');

// Hilangkan karakter yang telah disebutkan di array $char
$cleanval = str_replace($char, '', trim($val));

return $cleanval;
}
?>

contoh

index.php
Code:
<?php
include 'connect.php'; //anggap saja semua koneksi sudah beres
include 'sqlfilter.php'; //sertakan file sqlfilter.php

$id = SQLFilter($_GET[id]); //saring input dari user
$hasil = mysql_query("SELECT * FROM user WHERE id=$id");
while ($row = mysql_fetch_array($result)) {
  echo $row['username'];
  echo '<br />';
}
mysql_close();
?>

Semoga bermanfaat


Tambahan dari mastah

(03-11-2011 09:06 AM)wenkhairu Wrote:  tidak ada yang absolute dalam pengamanan data, tetapi apa yang di paparkan om android2009 tidak ada salahnya, ni ane punya sedikit validasi dalam pengamanan data ane, bisa dipake juga,
PHP Code:
<?php
/*
    Nama file    : class.validasi.php
    Kegunaan    : class untuk penanganan validasi pada data
    Author         : Khairu Aqsara
    Author site    : http://wenkhairu.net
*/

class Validasi extends Database
{
    
/* Fungsi untuk menghapus semua karakter yang jelek kecuali spasi */        
    
function validData($data)
    {
        return 
preg_replace('/[^a-zA-Z0-9\s]/', '', $data);
    }
        
    
/* Fungsi untuk memeriksa data bertipe numeric */
    
function dataNumeric($data)
    {
        if(
is_numeric($data)) return true; else return false;
    }
        
    
/* Fungsi untuk memfilter XSS */
    
function validXSS($data)
    {
        return 
trim(htmlentities(strip_tags($data)));
    }
    
    
/* fungsi untuk memfilter SQL injection */
    
function validSql($data)
    {
        return 
mysql_real_escape_string($this->validData($this->validXSS($data)));
    }
    
    
/* fungsi untuk memeriksa tipe data integer */
    
function validInt($data)
    {
        if(
is_integer($this->dataNumeric($data))) return true; else return false;    
    }
    
    
/* fungsi untuk memriksa format email */
    
function validEmail($email)
    {
        
$format="/^.+@.+\..+$/";
        
$email=strtolower($email);
        if(
preg_match($format,$email)) return true; else return false;
    }
    
    
/* format untuk memeriksa format URL */
    
function validUrl($url)
    {
        
$format="/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/";
        
$url=strtolower($url);
        if(
preg_match($format,$url)) return true; else return false;
    }
    
    
/* Fungsi untuk memeriksa tipe gambar */
    
function validImg($tipe)
    {
        
$tipeBoleh=array('image/jpeg','image/jpg','image/gif','image/png','image/bmp');
        if(
in_array($tipe,$tipeBoleh)) return true; else return false;
    }
    
    
/* fungsi untuk memeriksa panjang karakter */
    
function validPanjang($data,$min,$max)
    {
        
$data=$this->validData($data);
        
$min=$this->dataNumeric($this->validInt($min));
        
$max=$this->dataNumeric($this->validInt($max));
        if(
strlen($data) <= $min || strlen($data) >= $max) return true;else return false;
    }
    
    
/* fungsi memeriksa keberadaan file */
    
function validFile($file,$lokasi)
    {
        if(
file_exists($lokasi."".$file) && is_file($lokasi."".$file)) return true;else return false;
    }
    
    
/* fungsi memeriksa tipe file */
    
function validTipeFile($file)
    {
        
$tipeBoleh=array('zip','rar','doc','docx','txt','pdf','tar','tar.gz','gz','rtf');
        
$tipe=explode('.',$this->validData($file));
        if(
in_array($this->validData($tipe),$tipeBoleh)) return true; else return false;
    }    
}
?>
Find all posts by this user
Quote this message in a reply
02-07-2011, 01:58 AM
Post: #2
zer03s Away
ExploiteR devilzc0de
Posts: 1,330
Joined: Jan 2010
Reputation: 33
RE: Cara mencegah SQL Injection
PERTAMAX....

mantap keren om,, belajar
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2011, 09:34 AM
Post: #3
Sudden_death Away
0r4ng 94nt3ng
Posts: 412
Joined: Feb 2010
Reputation: 7
RE: Cara mencegah SQL Injection
nice share om,, keep share
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2011, 03:20 PM
Post: #4
Liyan oz Away
@riestiyansyah
Posts: 516
Joined: Dec 2010
Reputation: 12
RE: Cara mencegah SQL Injection
keren om ngerti ane ...
jadi gini dalam pemrosesan:
$username=$_POST['username'];
$pass=$_POST['password'];

kemudian melakukan pemrosesan user yaitu
$sql="SELECT * FROM user WHERE username='$username' AND password='$pass'"
jika tanpa filter kode diatas akan mudah disusupi SQL Injection. Dengan fungsi di atas kita bisa memfilter parameter yang kita inputkan

$safeusername=SQLFilter($_POST['username']);
$safepass=SQLFilter($_POST['password']);

kemudian baru kita lakukan pemrosesan mengambil data user.
$sql="SELECT * FROM user WHERE username='$safeusername' AND password='$safepass'"


betul gak om ??? tapi gimana kalo pada $char nya diinput karakter yang lainnya kayak UNIOn,, dll bisa ga ??

yang itu belum coba om
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2011, 03:40 PM
Post: #5
android2009 Offline
./Devilz Officer
Posts: 81
Joined: Dec 2009
Reputation: 3
RE: Cara mencegah SQL Injection
iya kodingnya udah betul mantap
bisa bro, tinggal tambahkan ke array aja
Find all posts by this user
Quote this message in a reply
02-07-2011, 03:49 PM
Post: #6
Matmund Newbie Away
Devilzc0deR Sejati
****
Global Moderators
Posts: 856
Joined: Mar 2010
Reputation: 36
RE: Cara mencegah SQL Injection
kya di blog'a dewa kusen...... hha
nice tut oms
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2011, 03:50 PM
Post: #7
Liyan oz Away
@riestiyansyah
Posts: 516
Joined: Dec 2010
Reputation: 12
RE: Cara mencegah SQL Injection
sep om,, ane udah coba,, stelah webnya dtest pake havij sama SQL manual lancar,, tapi

kata temen saya masih ada yang kurang,, makany saya bingung kurangnya apa ya /
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2011, 03:58 PM (This post was last modified: 02-07-2011 03:59 PM by android2009.)
Post: #8
android2009 Offline
./Devilz Officer
Posts: 81
Joined: Dec 2009
Reputation: 3
RE: Cara mencegah SQL Injection
(02-07-2011 03:49 PM)matmund Wrote:  kya di blog'a dewa kusen...... hha
nice tut oms

aku juga dapet referensi dari kaskus bro
yg penting niat share & ngerti algoritmanya aja
Find all posts by this user
Quote this message in a reply
02-09-2011, 04:18 AM
Post: #9
anbu Offline
Naevy LunnyamouR
****
Global Moderators
Posts: 3,305
Joined: Feb 2010
Reputation: 52
RE: Cara mencegah SQL Injection
ka aku mau tanya donk

aku punya web aku dah kasih filtering kya begitu kok masih bisa di injeksi yah??
Visit this user's website Find all posts by this user
Quote this message in a reply
02-14-2011, 08:56 AM (This post was last modified: 02-14-2011 08:56 AM by android2009.)
Post: #10
android2009 Offline
./Devilz Officer
Posts: 81
Joined: Dec 2009
Reputation: 3
RE: Cara mencegah SQL Injection
(02-09-2011 04:18 AM)ade yonatan Wrote:  ka aku mau tanya donk

aku punya web aku dah kasih filtering kya begitu kok masih bisa di injeksi yah??
kalo masih bisa di inject terus mending pake mod_rewrite aja suhuhore
Find all posts by this user
Quote this message in a reply
« Next Oldest | Next Newest »
Pages (3): 1 2 3 Next »
Post Reply 


Topic Tools
Topic Link :
BBCode :
HTML Code :
View a Printable Version Send Thread to a Friend Subscribe to this thread
Submit Google Submit Face book Submit to Digg Submit to Reddit Submit to Furl Submit to Del.icio.us Submit to Jeqq

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
Sad [Ask] cara buat balesan komentar berita di php superrmario 10 232 05-21-2013 01:53 AM
Last Post: ZenZ
  [Ask] cara membuat data mining pada php? Keonx 2 122 05-19-2013 06:12 PM
Last Post: Keonx
  [Solved] Tentang Cara Search Di Php wildan123456 4 127 05-15-2013 09:26 PM
Last Post: kurapika
  [Ask] Cara Decrypt Shell (dg Gambar) sayacupu 7 195 05-07-2013 07:52 PM
Last Post: googles
  [Solved] Cara Bikin Thumbnail Gambar Menggunakan PHP CodeSearcher 4 167 05-02-2013 04:47 PM
Last Post: CodeSearcher
  Bagaimana cara Login dengan menggunaka Privilage dauf 2 110 04-24-2013 11:44 AM
Last Post: dauf
  Cara Cepat Transfer File antar Hosting dengan php uchiha_sasuke 15 342 03-27-2013 06:59 AM
Last Post: uchiha_sasuke
  [Ask] cara mengarahkan action form ke page function region 11 236 03-25-2013 08:42 PM
Last Post: DC_Julianz
  Cara Buat WEB hyip (High Yield Investment Program) jackerp 5 267 02-02-2013 11:28 PM
Last Post: sinwae
  [Ask] cara menampilkan nama berdasarkan id yang di input region 1 188 01-16-2013 09:17 AM
Last Post: sotbot

Users Browsing

  • Contact Us
  • devilzc0de
  • Return to Top
  • Mobile Version
  • RSS Syndication
  • Help
Current time: 06-19-2013, 07:26 AM Powered By MyBB, © 2002-2013 MyBB Group. Theme created by Justin S. | Mixed By Chaer.Newbie | Fixed By Aditya

USING THIS SITE INDICATES THAT YOU HAVE READ AND ACCEPT OUR TERMS. IF YOU DO NOT ACCEPT THESE TERMS, YOU ARE NOT AUTHORIZED TO USE THIS SITE