astropaykartsatis.net
User Tag List

Yeni Konu Aç Cevap Yaz
Toplam 2 Sayfadan 1. Sayfa
31.12.2010, 20:42 1 (permalink)
Azat Metin
  • Üyelik Tarihi4.11.2010
  • Ticaret Sayısı0
  • Mesajlar284
SQL Injection Saldırılarına Önlem #permalink (permalink)
SQL Injection saldırıları ile neredeyse herkesin başı dertte büyük sistemler SQL Injection ile çok kolay anasını ağlatabilmektedirler bende bir nebzede olsa kabak gibi duran SQL Injection saldırısını önlemeyi anlatacağim.
Örnek olarak bir sorgu alalım ben projelerimde kullandıgım değerlerden örnek vericem


$_POST'a gelen değerler çok önemlidir çünki mysqldeki değerler ile karşilaştirilacaktir..

PHP- Kodu:
$sifre=$_POST['sifre']);
$sifre=mysql_query("select * from yonetici where `id`='$sifre'");
mysql_num_rows($kontrolet
Böyle birşey kullanmak tamamen bir hatadır çünki SQL Injection yapacak arkadaşin ` işareti olusturmasina gerek
bırakmadiniz böylece SQL ınjection saldırıları ile USER ve PASSWORD
bilgileriniz SQLden çekilebilir bunu önlemek ise basittir

PHP- Kodu:
$sifre=$_POST['sifre']);
$sifre=mysql_query("select * from yonetici where id='$sifre'");
mysql_num_rows($kontrolet


böyle yapildiği taktirde SQL açiği oluşması için `gerekliliğini belirttik..` önlemek için $_POST a bunları yapmak yeterli olcaktir.


PHP- Kodu:
$sifre=mysql_real_escape_string(htmlspecialchars($_POST['sifre']));
$sifre=mysql_query("select * from yonetici where id='$sifre'");
mysql_num_rows($kontrolet



ysql_query de id sifre karşilaştirmasini böyle yaparsak arkadaşın ` işareti olusturması kosulunu koruz daha sonra mysql_real_escape_string fonksiyonu kullandiğimiz için arkadaş ne zaman ` oluşturmaya kalksa babayı alıcaktir

Umarım kendimi ifade edebilmişimdir.
Konu ile ilgili sorulara herzaman açığım.
Saygılarımla..
Azat Metin / www.yasalhost.com
Azat@yasalhost.com
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
10.04.2011, 00:23 2 (permalink)
r4x
r4x
  • Üyelik Tarihi18.03.2011
  • Yaş39
  • Ticaret Sayısı0
  • Mesajlar35
veyahut şu şekilde olabilir

PHP- Kodu:
$id $_GET["id"];

// get id yi sayı olarak farz edelim

if (is_numeric($id)){ // $id değişkeni sayı ise birşey yapma
}
else { 
//değilse Anti SQL Inection yazdır ekrana
echo "Anti SQL Injection";

Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
28.05.2011, 13:39 3 (permalink)
Dietime
  • Üyelik Tarihi28.05.2011
  • Ticaret Sayısı0
  • Mesajlar1
Hexlerse?
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
19.06.2011, 14:27 4 (permalink)
Hakan Damar
  • NeredenYurt Dışı Şubesi
  • Üyelik Tarihi17.06.2011
  • Ticaret Sayısı0
  • Mesajlar429
CogeIgniter framework'ü kullanırsanız bunları o sizin yerinize yapıyor

Framework'lere karşı çok sıcak yaklaşmam ama CI'ı bir incelemenizi öneririm. Gerçekten öğrenilmesi kolay ve kullanımı basittir. Sizi bu tür object veya method'larla uğraşmak yerine işinize yoğunlaşmanızı sağlıyor.
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
9.10.2011, 16:12 5 (permalink)
aloneman5
  • Üyelik Tarihi19.11.2010
  • Yaş27
  • Ticaret Sayısı0
  • Mesajlar29
teşekkürler
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
15.10.2011, 12:57 6 (permalink)
Caesar
  • Üyelik Tarihi5.06.2006
  • Ticaret Sayısı0
  • Mesajlar2,287
Daha kullanışlı hale getirelim;

PHP- Kodu:
function temizle($deger$utf=false) {
    
$deger strip_tags $deger );
    
$deger trim $deger );
    
$deger mysql_escape_string $deger );
    return 
$deger;
}

function 
dizi_temizle($deger) {
    foreach (
$deger as $key => $value) {
        if (!
is_array($deger[$key])) {
            
$deger[$key]=temizle($value);
        } else {
            
$deger[$key]=dizi_temizle($deger[$key]);
        }
    }
    return 
$deger;

Tek değer için;
PHP- Kodu:
$deger=temizle($_POST['deger']); 
Çoklu postlarda:
PHP- Kodu:
$form=dizi_temizle($_POST);
//$_POST ile gelen tüm değerler temizlendi örn: $form[id],$form[deger],$form[deger1] 
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
22.12.2011, 18:21 7 (permalink)
osman_gndgn
  • Üyelik Tarihi20.12.2011
  • Yaş35
  • Ticaret Sayısı0
  • Mesajlar3
hocam cok tesekkurler cok yararli bir paylasim olmus
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
2.05.2013, 04:04 8 (permalink)
emekli
  • Neredenİstanbul Şubesi
  • Üyelik Tarihi22.03.2013
  • Yaş40
  • Ticaret Sayısı0
  • Mesajlar74
ben artık mysql yerine PDO kullanıyorum,
değişkenleri parametre olarak eklediğimiz için çok güvenli oluyor.
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
19.09.2013, 09:04 9 (permalink)
PhpCode
  • Neredenİstanbul Şubesi
  • Üyelik Tarihi5.07.2013
  • Yaş25
  • Ticaret Sayısı0
  • Mesajlar67
Saldırıları önlemek için yapılacaklar listesi oluştursak buradan çine yol olur. Sizleri paylaştığınız yararlı bilgilerden dolayı tebrik ediyorum .Teşekkürler iyi çalışmalar
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
20.09.2013, 10:14 10 (permalink)
soulmy
  • NeredenSamsun Şubesi
  • Üyelik Tarihi1.12.2010
  • Yaş31
  • Ticaret Sayısı1
  • Mesajlar507
PDO, candır canandır
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
Yeni Konu Aç Cevap Yaz
Toplam 2 Sayfadan 1. Sayfa
Şu an bu konuyu okuyan kişi sayısı: 1 (0 üye ve 1 misafir)
 
Seçenekler
Yetkileriniz
Konu Acma Yetkiniz Yok Cevap Yazma Yetkiniz Yok Eklenti Yükleme Yetkiniz Yok Mesajınızı Değiştirme Yetkiniz Yok
BB code is Açık Smileler Açık [IMG] Kodları Açık HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık
Forum Kuralları
Benzer Konular
Konu Konuyu Başlatan Forum Cevap Son Mesaj
HTML Injection Saldırılarına Önlem Azat Metin PHP Yararlı Bilgiler 8 5.08.2011 10:26
SQL Injection desoLate PHP 15 22.03.2007 03:39
SQL injection ASP Güvenlik tolgahat ASP .NET 5 7.01.2007 19:09
Sql Injection Önleme dejafu ASP .NET 0 3.06.2006 02:55

Forum Saati: 14:06. Zaman dilimi GMT +3 olarak ayarlanmıştır.
Powered by vBulletin™ Version 3.8.7
Copyright © 2017 vBulletin Solutions, Inc. All rights reserved.