• 16-06-2010, 04:13:46
    #46
    slcQ adlı üyeden alıntı: mesajı görüntüle
    Güvenlik için kendi açımdan bilmediğin zımbırtıyı(değerleri) projelerimde kullanmıyorum.
    En basitinden SQL INJ. saldırılarına karşı POST ve GET süper global değişenleri filtreliyorum.
    strip_tags,mysql_escape_string gb.
    Değer karşılaştırmasını rakamsal olarak yapiyorsanız ki bence doğru olan budur.Mutlaka intval(); yada is_numeric(); kullanımını tavsiye ediyorum.
    Özellikle üyelik scriptlerinde cookie yerine session kullanmak daha sağlıklı olur.Eğer fazla gelişmiş bir üyelik değil ise.

    Kendi düşünceme göre aklıma ilk gelen bunlar.Başkada gelmiyor.
    en iyisi bildiğin yol diyorsun yani
  • 18-06-2010, 15:06:31
    #47
    tam güvenlik diye birşey yoktur
    olsa anbe an bug çıkmaz.

    bu konuda atalarımız ; "el elden üstündür" demiştir.

    bu yüzden elimizden gelenin en iyisini yapıp
    sadece php değil hack konularına'da merak salmak gerekiyor.
  • 18-06-2010, 16:36:47
    #48
    RedZ adlı üyeden alıntı: mesajı görüntüle
    Mysql kullanıyor.


    Diğer konuya gelince türkiyedeki hackerlar belli genelde sql injection,rfi ile hack ediliyor yada sosyal mühendislik ile o yüzden

    • 10 20 tl fazla verin adam gibi bir firma ile çalışın Godaddy,sadecehosting,isimtescil gibi
    • Sql sorgularınızdaki get ile alınanlara göre kontrol edin yani şöyle kullanıyorsunuz ; haber.php?id=1 şimdi böyle bir sorguda $id = (int)$_GET['id']; yapsanız bile sql injectiondan kurtulmuş olursunuz
    • Get ile alınan verileri her zaman kontrol ettirin mesela "<" ve "%3C" her zaman temizletin
    • Get ile gelen verileri herzaman sefleyin yani şöyle bir sayfanız var ; haber.php?id=1 herhangi bir sql bilginizde yok haber.php?id=;show+databases; yapıldıgında get ile geleni sef e cevirmezeniz sql e şöyle gider select * from haberler where id=1;show databases; olarak fakat sef e çevirirseniz ; select * from haberler where id=1;show-databases; tabi sql sorgusu çalışmaz hackerda amacına ulaşamaz
    • Get ile gelen verileri her zaman kontrol ettirin mesela gelen istekte union select show information.schema var mı yokmu eğer var ise direk scripti sonlandırın
    • Gerekmedikçe get i ekrana yazdırmayın yani makale_oku.php?id=1 buna yorum_yaz.php?id=$_GET['id'] yapmaktansa yorum_yaz.php?id=$row['makale_id'] yapın
    • Get ile gelen isteklerin karakter sayılarını kontrol edin
    Bunları yaparsanız php de güvenliğe fazla kafa yormazsınız -ki ben sadece veritabanı güvenliğinden bahsettim diğer güvenliklerdende arkadaşlar bahsetmişler zaten.
    GET ile alınan veriler integer ise sadece integer veri tipindeki veriye izin verilmesi gerekmektedir.
    örneğin
    <?php
    $id = $_GET['id'];
    if ( ! is_numeric($id) )
        die("hack girişimi..");
    // Veya
    $id = (int)$_GET['id'];
    // Veya
    $id = intval($_GET['id']);
    // Veya
    $id = is_numeric($_GET['id']) ? $_GET['id'] : 0;
    ?>
    String verilere gelince de. Kullanıcıların veri ekleyebileceği yerler mutlaka strip_tags() ile html kodlardan temizlenmeli ayrıca SQL injection ataklarını önlemek için de mysql_real_escape_string ile filtrelenmeli . Filtrelenen bu veriyi de şu şekilde kullanmak gerekmektedir.
    $SQL = "SELECT * FROM tabloadi WHERE kolonadi = '{$filtrelenenVeri}'";
    Umarım yanılmıyorumdur.
  • 18-06-2010, 16:49:48
    #49
    strip tags ve real_escape bir işe yaramaz örneğin


    burada bir sql injetion var fakat jet database oldugundan işlemler engelleniyor gördüğünüz gibi herhangi bir tırnak veya html kod mevcut değil
  • 18-06-2010, 17:01:13
    #50
    devturkeli adlı üyeden alıntı: mesajı görüntüle
    facebook oracle kullanıyor.
    FAcebook'un Oracle kullanmasındaki sebeblerden birisi Oracle güvenlidir. çünkü çoğu hack konuları mysql üzerindedir.

    Bir diğeri asıl önemli konu olan yüksek kayıt gerektiren durumlarda Oracle kullanılır. Örneğin 200 bin satır dan fazla kayıt varsa Oracle kullanılır . Hız ve daha öneli şeylerde devreye giriyor.
  • 18-06-2010, 17:33:49
    #51
    @redZ linki kaldır istersen hacklenir falan gerek yok.
  • 18-06-2010, 18:06:22
    #52
    Cycl0ne adlı üyeden alıntı: mesajı görüntüle
    @redZ linki kaldır istersen hacklenir falan gerek yok.
    Pardon dalgınlıgıma gelmiş
  • 18-06-2010, 20:50:30
    #53
    bende kendi güvenlik yöntemlerimi anlatayım.

    1. şifreleme normal md5 kullanırım ve bunun sonuna da site_anahtari dedigim md5 lenmiş bir anahtar olur. böylece giriş yaparken hem şifreyi bilmesi hemde site anahtarını bilmesi gerekir. yani şifre 123456 bile konsa bir şekilde DB deki şifrelere ulaşsa. site anahtarını bilmediği için o şifreleri çözmesi zor olur (! imkansız değildir).

    2. herhangi bir resim yüklemede php nin getimage size fonksiyonunu kullanırım böylece XSS lerden sahte resimlerden kaçınmış olunur.

    3. veri türüne göre kontrol fonksiyonları yazarım. yani

    $query = select * from urunler where id = '$id';
    tarzında integer değer çeken bir sorguda ne kadarda mysql_real_espace_string te kullansanız injection yolu var. burada söylemeyeceğim yolu.
    bundan kacınmak için is_numeric kullanırım böylece gelen veriyi ilk süzme işlemi gerçekleşir.

    4. $_SESSION olarak ise genelde kullanici adi ve hashlanmis kullanici adi yaratirim ve session_path vs yi sadece domain uzerinde gosterilecek olarak tanimlarim . boylece hatalı bır hosting ayarında başka site üzerinden sezonların gözükmesini engellerim. ve herhangi giriş yapan üyenin sezonlarını veritabanındakiler ile karşılaştırır eğer herşey düzgünse işleme devam ederim. değilde ekrana şu çıkar benim Motto m.

    echo 'Yapma etme usta yani ne gerek var buna';
    5.Cookie leri genelde TREE,breadcrumb(ekmek kırıntısı) tarzı çok lu menülerde bulunduğu yeri tanımlamak için kullanırım. ve cookieleri genelde hashlanmiş şekilde gönderirim. geri döndüğünde kontrol ettiririm.

    Büyük ölçekli sitenin performansına etki edermi derseniz bu şeyler. biraz eder ama öyle ahım şahım olmaz.

    Zend konferansından bir kaç söz aşağıda yazılı. okursanız demek istediğimi anlarsınız.

    1. en kısa kod her zaman en hızlı kod değildir.
    2. kodu kısaltmak bir çok zaman performans açısından etkisi az olur.
    3. yorum satırları performansı düşürmez.
    4. sitenizdeki kodları optimize etmek için bir codera vereceğiniz para yerine serverınıza donanım eklentisi yapmak çok daha avantajlıdır. aynı paraya 3 kat performans alabilirsiniz.

    teşekkür ettim . bildiklerimi paylaştım.. eğer hatam var ise olumlu ve olumsuz eleştirilerinizi bekliyorum.

    herkese iyi çalışmalar dilerim.esenlikle kalın. (haber sunucusu gibi oldu ama neyse)..
  • 19-06-2010, 11:46:05
    #54
    Üyeliği durduruldu
    hsnhsynisler adlı üyeden alıntı: mesajı görüntüle
    FAcebook'un Oracle kullanmasındaki sebeblerden birisi Oracle güvenlidir. çünkü çoğu hack konuları mysql üzerindedir.

    Bir diğeri asıl önemli konu olan yüksek kayıt gerektiren durumlarda Oracle kullanılır. Örneğin 200 bin satır dan fazla kayıt varsa Oracle kullanılır . Hız ve daha öneli şeylerde devreye giriyor.
    500,000 kayitli herhangi bir sorun yasamadigim mysql tablolari mevcut. oracledada sonucta sql injection soz konusu. onda farkli filtreler uygulamaniz gerekiyor. burdaki tek etken performans.