Güvenlik kodunu rafa kaldırıyoruz.

phpinup gpl 3 Güvenlik kodunu rafa kaldırıyoruz. programlama Üye olurken, mail gönderirken, bir konuya cevap yazarken yada yorum gönderirken güvenlik açısından nedense her zaman güvenlik kodu kullanılmaktadır. Hatta botlar bu kodu okuyamasın diye resim içine yazılmış hali kullanılır.

Peki neden? Kullanıcıyı bu kadar yormak yerinde midir? Bir yorum yazmak için o karma karışık fontlarla ve renklerle yazılmış güvenlik kodlarını bu derece okumaya zorlanmamız illaha da gerekmektemidir?

Hayır gerek yoktur! Artık güvenlik kodlarını rafa kaldırıp flood kontrole geçmenin zamanı gelmiştir.Üye olurken, mail gönderirken, bir konuya cevap yazarken yada yorum gönderirken güvenlik açısından nedense her zaman güvenlik kodu kullanılmaktadır. Hatta botlar bu kodu okuyamasın diye resim içine yazılmış hali kullanılır.

Peki neden? Kullanıcıyı bu kadar yormak yerinde midir? Bir yorum yazmak için o karma karışık fontlarla ve renklerle yazılmış güvenlik kodlarını bu derece okumaya zorlanmamız illaha da gerekmektemidir?

Hayır gerek yoktur! Artık güvenlik kodlarını rafa kaldırıp flood kontrole geçmenin zamanı gelmiştir.

Yapmamız gerekenler sadece POST gönderildikten sonra o anki süreyi bir değişkene atayıp daha sonra o değişkenden verilecek süre içerisinde tekrardan bir hareket geliyorsa bunu engellemek olacaktır.

Örneğin:

<?
session_start();
mysql_connect("localhost","root","");
$floodkontrol    =    "600"; //600sn yani 10 dk
?>
<form action="" method="POST">
<input type="text" name="bilgi"> <input type="submit" value="Gönder">
</form>
<?
if ($_POST) {
    if ($_SESSION[kontrol]+$floodkontrol>time()) { //Kontrol ediliyor
     echo "10 dk geçmeden ikinci bir post gönderemezsiniz";
     die();
    }
    $bilgi=trim($_POST[bilgi]);
    $bilgi=strip_tags($bilgi);
    $xss_hile=array("<",">","’","\"");
    $xss_duzelt=array("&lt;","&gt;","\\’","\\\"");
    $bilgi=str_replace($xss_hile,$xss_duzelt,$bilgi);
   
        $ekle=mysql_db_query("database","insert into tablo values(”,’$bilgi’)");
        $_SESSION[kontrol]=time(); //Kontrol başlangıcı.
        $echo $bilgi." başarı ile eklendi.";
       
}
?>

şeklinde bir flood kontrolü yaparak hem kullanıcıları yada ziyaretçileri yormamış oluruz. Hemde Güvenlik kodu zor okunsun diye türlü fontlar kullanıp çorbaya çevirme eylemine son vermiş oluruz.

Arama Terimleri:

omegle captcha kaldırma, facebook güvenlik kodu kaldırma, facebook güvenlik kontrolü kaldırma, omegle güvenlik sorusu kaldırma, facebook güvenlik kodu nasıl kaldırılır, omegle captcha nasıl kaldırılır, facebook güvenlik kodunu kaldırma, facebook güvenlik kontrolü nasıl kaldırılır, facebook güvenlik kontrolünü kaldırma, güvenlik kontrolünü kaldırma

Yazar - 21 Kasım 2006. Kategori PROGRAMLAMA. Bu yazıya yazılan yazıları RSS üzerinden takip edebilirsiniz RSS 2.0. Yorum yazabilir veya geri izlemede bulunabilirsiniz.

40 için yapılam toplam yorum - Güvenlik kodunu rafa kaldırıyoruz.

  1. ahmet alp balkan

    bence bu sistem çok kolay aşılır + şunu söyleyeyim ki flood araçları her post için ayrı bir session açıyor. yani bu kodun baştan aşağı iptal :) sessionla yap sen bunu, ben sana aşılabileceğini çok kolay ispatlarım.

  2. Deniz Dursun

    … sadece “Guvenlik kodunu rafa kaldiriyoruz” baslikli makaleye, 3970 seklinde guvenlik kodu girerek yorum ekleme serefine nail olmak istedim :)

  3. hayir, kod dogru.

    bu kod botlar tarafindan ogrenilmesin diye yapiliyor. bot 600 saniyede bir gonderme yaparsa ne olacak ?

    kod karmasik olmamali ama olmali.

  4. Halil Özgür

    Gereken pek çok şeyi arkadaşlar söylemiş. Benzer yöntemler yaygın ama inanın resim uygulaması en azından şu an için en iyi yol olmasaydı Fortune 500 şirketlerinin ilk sıralarındakiler bunu kullanmazdı. Onlar da eminim bizden çok daha fazla kaynak harcamışlardır bu işe. Naçiz kanımca bir çözüm ihtimali tarayıcılarda bu konu için ek ve standart özellikler geliştirilmesi. Resimlerin engelli insanlar açısından zorluğu da ayrı bir mesele zaten (accessibility mevzuları). ınşallah bu konuya mantıklı bir çözüm geliştirilir.

  5. Kullanıcıları uğraştırmamak, erişilebilirliği arttırmak adına programcının farklı kontrol yolları kullanması sahiden yararlı olur. Lakin session veya cookie bu iş için pek uygun değil sanırım. Tarayıcıyı kapatarak veya çerezleri silerek devam edilebilir olması flood tehlikesini ortaya çıkarıyor. (Flood denemesi tarayıcı olmadan yapılıyorsa durum daha vahim tabi)

  6. MeW’in de dediği gibi güzel bir mantık ama oturumla/çerezlerle yapılırsa türlü yollarla aşılabilme ihtimali olacaktır… Örneğin bu kodda, ‘kontrol’ isimli oturum verisi için hâlâ sızılabilecek bir açık bulunmakta; formu yollayan kişi karşıdan gelen PHPSESSID’sini çerez olarak kabul etmezse, $_SESSION[‘kontrol’]’ün değeri olmayacağı için if(600 > time()) şeklinde bir şekle gelmiş olacak ve aşılacaktır. (tabii bu da illa oturumun karşı tarafta oluşturulduğunu kontrol etmek gibi bir yöntemle yamanabilir)

  7. session’ın kayıtlşı olduğu durumlarda işlemleri kontrol etmesini sağlayarak geliştirilebilir.

    fakat, eğer saldırgan, bizim 600 saniyede bu korumayı devre dışı bıraktığımızı biliyorsa ve her 600 saniyede bir istek göndererek veritabanın zamanla taşmasını sağlayacak bir script yazarsa ?

    Ama tebrikler, sonuç olarak güzel düşünce..

  8. Güzel bir yöntem. Arkadaş bize doğru bir yol göstermiş geliştirmek bize kalıyor.

    Geliştirilebilir ve gerçektende kullanıcı yormadan bazı şeyleri post edebilmesi sağlanabilir.

  9. Arkadaşların da dediği gibi 600 saniyede bir taşlama yapılabilir veya cookie silimi ve browser kapatmak gibi çözümlerle bu aşılabilir.
    Gene de birçoğunu engellemesi beklenebilir. Bence iyi…

  10. Zafer BAHADIR

    Burada olay sadece flood olyı değilki, bazı özel scriptler yöntemiyle sitelere giriş yapılamasın diye güvenlik kontolu yapılıyor.

    Örneğin ben bir script yazarım ve üyesi olduğum bir siteye hergün girmesini sağlarım, bunu nasıl önleyeceksiniz?

    Burada önemli olan zaman faktöründen ziyade insan faktörü, resimler onun için kullanılıyor, insan faktörü için.

    Güzel bir düşünce olduğuna katılıyorum ama geliştirilirse kullanılabilir mi bilmiyorum.

    Yanlış anladığım bir şey olabilir beni aydınlatırsanız sevinirim.

  11. Bu yöntemin güvenilir olduğunu söylemek bence yanlış olur.
    Bu dediğiniz yöntemi güvenlik kodu ile birlikte zaten kullanıyoruz.
    sadece bu yöntemin kullanılması güvenlik açısından sakıncalı olduğunu düşünüyorum.

  12. Güvenlik kodlarının amacı belli aralıklarla yapılıcak saldırıları önlemek.
    Yani otomasyonu engellemek ve IMAGE içerisindeki yazıyı okuyamayacaklarından sorun olmaz ama ileri seviye de o image içerisindeki renklerin diziliminden bile o renkler çözülebilir bla bla bla.

  13. Bu sadece bir örnektir. Botlara karşı cookie ile session belki önlem olamaz ama zaman fonksiyonu arraylanarak ve requestler arraylanarak bir çözüm getirilebilir. Ben yolu gösterdim ilerlemek sizin elinizde

  14. 30 dak arayla üyelik yapan bot olursa nolcak

  15. Ahanda konuya tam uyan başlık bu oldu, php ile flood kontrolu yapmak gibi bir dallamalığı bir kenara koyarsak(zira flood kontrolu için daha uygun olan yer php nin dahil olduğu sistem belki de onunda dışındaki şeylerdir)
    Ceaser arkadaşımızın Mambo ekibinin kodlarına bakarakta bişey anlamadığının ispatıdır bu, Öncelikle Ceaser’ a soralım What is Mechanic Turk? ve aydınlanmasını bekleyelim.

  16. Öncelikle girişim için arkadaşa teşekkür ediyorum.
    Fakat burada önemli bir kaç konu var. Birincisi zaten bu sistemler kullanılırken bunlar aşıldığı için captcha diye adlandırdığımız görsel doğrulama kodları yaratıldı. Bugün yahoo, microsoft, google gibi çok büyük firmalar bile daha iyi bir seçenek sunamıyorlar. (ses konfirmasyonu dışında)

    Eğer daha kullanıcı dostu sistemler yapmak istiyorsak bunu ancak ve ancak kullanıcıların davranışlarını izleyerek bir yapay zeka oluşturarak yapabiliriz. Çok kaba bir örnek: bu mesajı atarken AJAX ile harflere basma sürelerimin farklılıkları, postu tamamlamam ve bunun gibi şeyler incelenirse (ki bu işlemin çoğu client’ta gerçekleşeceği için server’ı da yormayacaktır) captcha olayına gerek kalmayabilir.

    Bu tip bir proje başlatmak isteyen olursa yardımcı olabilirim.

  17. Bu tur zaman ayarli flood korumalari coktan beri yapiliyor. istenilsin grafik bile gecilir. grafigide istediginiz kadar karistirin isterseniz. Arkadas zaman olayini dogru demis ama yetersiz
    söyle olablir; bir insanda olsa neden aynı mesajı arka arkaya gondersin eger gonderiyosa kac tane gondersin istemedende olsa bazen iki tane yoluya biliyoruz ozaman her turlu kazalara karsi 3 tane aynı mesajdan yollama yetkisi verelim.aynı kisiden aynı mesajı otomatik silme gibi bir temizleyici yapılablir. bir insan kac saniyede mesaj atar en hızlı 30 olsun ozaman ilk kısıtlama 30 sn olsun bir insan bir saat icinde hic bir karsilik almadan arka arkaya neden kaç mesaj atar onuda diyelim her 5 dakkada bir mesaj atsa 24 mesaj olsun yani bir saatte 24 mesaj hakki verelim bunu iki saat icin yariya dusurelim bir gun icin daha daha indirebiliriz. bu durumlara uymayanların ip lerine ban çekilebilir ayriyetten de gonderilen mesajların zaman periyodikmi diye kontrol edilip o sekilde bir koruma konulablir. hic bir insan özellikle ayarlayıp 50 sn yede bir mesaj cekemez kasıtla ayarlamadığı sürece. bir de karsi tarafa nasil yakalandigini belirten ipucular vermemekte fayda var. bu yazdiklarimin cozumleri var eger nasıl yakalandigini bilmesse cozumde uretmesi uzun zaman alir. bunlarin hepsini gec kisi yazdigi kucuk programciklar sayesinde zombie atak yaptı zombielerden korunmak gercekten cok zordur. onun icin korunman siten icin ise siteye gunluk istatisliklerine gore belli miktarda limit atarsin

  18. Flood programlarını 10 dk veya X zamanda request göndermeye programlamak mümkündür. Hiçbir koruma grafik ile veri doğrulamanın yerini doldurmaz. şahsi görüşüm, güzel düşünülmüş ama geliştirilmesi gerekir.

  19. deniz özmen

    Http Floodlar tek session ile durmadan üye olmazlar.Her seferinde yeni bir socket açarlar ki bu da SESSION’da tutulan verilen her seferinde sıfırlanması anlamına gelir.şuan en iyi koruma GD’dir.Bu gayet açık görülüyor.

  20. Arkadaşlar bakıyorum bir çok kişi yorum yazmış ama şunuda biliyorum bu yorumları yazanların bir çoğu gerçek zamanlı projelere hiç bir zaman girmemiş yada ülkemizdeki ciddi projelerde imzası bulunmayan insanlar . Öncelikle bir yere gelin sonrada bu saçma eleştirilerinizi yapın

    bunun yanında fikir tabikide güzel yok aşarım yok şöyle ederim tarzı saçma cümleleri geçin eleştiri yapacaksanız bir kod yazarsınız dersiniz aha size daha güzel bir kod olur biter eleştiri yapmanında bir dozu ve adabı vardır mantığı yaratan arkadaşa teşekkürler isteyen alır geliştirir daha güzelini yapar paylaşır

  21. Emin ÖZTÜRK

    Bilgileri için yazan arkadaşımıza teşekkür ederim. Eleştirmek eleştirilen şeyi daha iyi halde görmek içindir. Hakaretler yağdırarak aşağlıyarak yapılan eleştirinin kimseye faydası olmaz.

    şu anda bir proje içerisindeyim. Ne projesi ? Domain Hosting Dedicated satışı yapan firmalara yönelik bir E-Ticaret sistemi geliştiriyorum. Sistem içerisinde bende bu tarz bir kod kullandım. ASP ile kodladım ve yaptığım her giriş için 1 Session açmak ve o Sessina verdiğim zamanı takip ederek kontrol etmesi gereken sayı kadar posta atıldığı an Sistemin Otomatikmen ip yi banlamasıdır. Basit bir sistem olduğunu anlarım. Ama hafife alınmayacak kadar iyi bir sistem. En azından Görsel Doğrulamadan sağlam kanımca.

  22. Belki session içerisne sürenin yanında proxy kontrolünden geçmiş yorumu yazan kişinin ip no sunu eklersek daha mantıklı olabilir benim görüşüm.Capatcha ile beraber kullanılması.Normal şartlarda bir insan kendisini çok zorlarsa 45-60 saniyede bir yorum yazabilir.ilk 10 dakika içinde yazacağı yorumlarda resim ile doğrulama harici yorumlarda gene session ile süre+ip kontrolü yapılabilir.Böylece gene kimseleri yormamış oluruz.Devamlı yorum yazma isteğinde olan kişilerde devamlı güvenlik resimleri ile karşılaşır.

    Yukarıdaki bunu şöle aşarım böle aşarım diyen arkadaşlara :

    istenildikten sonra her şekilde her şey aşılır.Neticede o kodu yapan tasarlayanda bir insan.10 dakikada bir yorum yazan bir script/bot yazmış/yapmış olsanız ne işinize yarar ? :) Veya güvenlik resimlerini aşacak okuyacak bi script yazmış olsanız..? Zamanınızı başkalarının yaptıklarını yıkarak değil geliştirerek geçirin

  23. bence en iyi yöntem bir text dosyası veya xml veya database e bir tablo oluşturup bu tabloya kulanıcının ip ve gönderme zamanını kaydedin…
    muhakkak vardır bi mysql bağlantı dosyanıza veya text dosyanıza veya xml dosyanıza zamandan 10dka geçtiyse bilgileri silmesi için komut verebileceğiniz bir ayar dosyası.. Hem bu şekilde cookies ve session silinmesi derdinden kurtulursunuz…
    bunu için üyelik sistemleri kullanan portallarda şöyle birşeyde yapabilirsiniz…
    select * from mesajlar adı where kullanici=post[kullanıcı] and zamani > (time()-600)

    sonra eğer tablo sayısı 1 ise uyarı sayfasına yönlendirebilirsiniz…
    ek db veya başka birşeye gerek kalmadan

  24. Orcun Madran

    Guvenlik kodu uygulamasi basarili olmus ve halen kullanilmakta olan bir sistem. Buna bir alternatif uretme cabasi icine girmek de oldukca mantikli. Iyi bir sistemi daha ileri goturmeye calismak olumlu bir hareket diye dusunuyorum. Burada onemli olan insan ile makinayi ayirt edebilmek. Bunu basit bir soru ve yine basit bir cevap verme yontemi ile gerceklestirmek mumkun olabilir. Gelisiguzel olarak belirlenen bir renk dusunun bir kutu icinde. cevaplar yine gelisiguzel renk kutulari. 4 farkli renge sahip 4 tane cevap kutusu oldugunu dusunun. Soru olarak sorulan renk hangisi ise cevap kisminda o kutuya tikliyorsunuz. Yine bir gorsel dogrulama ama kolay cevaplanacak bir sekilde dizayn edilmis. Bir ornegini yapip sizlere linkini vermeye calisirim. Gorusmek uzere

  25. Belirlenen kutu içindeki renk hacker tarafından yapılacak olan program ile okunabilir.

  26. Cappystarj0e

    10dk içinde bir mesaj daha gönderilemeyeceği bile söylenmemeli bence. Çünkü bu halde 10dkda bir mesaj gönderilen kod yazılabilir.Bence güvenlik kodu olmayacaksa sadece zaman sınırlaması değil, belli bir zaman içinde belli bir mesaj sınırlaması getirilmeli. Yani bir kullanıcı örneğin 1 saat içinde sadece 10 mesaj gönderebilmeli şeklinde.

    Ayrıca sizin kodunuzda şöyle bir durum var. Proxy IP ile bağlantı kurulup her bir IP’den 10 dk.da bir mesaj gönderimi de yapılabilir. ;)

  27. Orcun Madran

    Olaya hacker sunu yapar bunu yapar seklinda yaklasmak cok da dogru degil bence. Sonucta koskoca sirketlerin milyon dolarlik sistemleri cokertiliyor. Amac en az kulfet ile maksimum koruma.

  28. bende bir guvenlik uygulaması kullanıyorum. Forum da verilmişti. Ama şimdi ( ben bunu nası dusunemedim ) ben resmimi oluşturuyorum ve $_SESSION[‘kod’] diye kayıt ettiriyorum. ve daha sonra POST yoluyla gelen kodu karşılaştırıyorm. aynı ise ok deilse hop. Ama anladıım kadarıyla sessionla deilde MySQL le yapmak daha kolay olucak. Bi yol gosterirmisiniz.

  29. Güvenlik kodu uygulamasının bazen çok can sıkıcı olduğu bilinen bir durum.. Bu yöntem de iyi tasarlanırsa can sıkmadan iyi oranlarda bot ayrımı yapabilir. Ben bir başka yöntem öneriyorum. Site kullanıcıları göz önünde bulundurularak seçilen çok sayıda basit sorunun rastgele sorulması.. Mesela “Başkentimiz?” veya “Annenizin kardeşi kimdir?” gibi cevapları basit olan sorular sorulabilir. Bu sorular metin değil de resim olarak gösterilebilir. Hatta kullanılan yönetmlerin rastgele seçilmesi daha da iyi olabilir.

  30. Curl fonksiyonlarını kullanarak Bu yöntemi rahatlıkla geçebilirsiniz..Curl den gelen her istek için ayrı session açacağından method işlemez,ancak üye girişi yapıldıktan sonra bu yöntem izlenebilir.

  31. Arkadaşlar cookie ler her türlü siliniyor zaten.
    zaman kontrolü bu yüzden güvenli olmadığı için resim kontrolü uygulaması geliştirilmiştir. Yani siz ne kadar uğraşırsanız uğraşın varacağınız sonuç resim kontrolü olmalı. ılerlemek için geriden başlamayın.
    Konuyu iyice anlayalım.
    Resim konrolü ne için kullanılır ?
    Programlarla otomatik işlem (üyelik, yorum) yapılmasın diye.
    Program cookieleri silebilir rahatlıkla. ama resimleri okutmak için hele hele deforme edilmiş resimleri algılatablmesi için . çok kuvvetli bir CR sistemi programlanması gerekir. Bu da her baba yiğidin harcı değil.
    şu an rapidshare vb sitelerdeki resimler maximum deforme edilmiş ve program taafından okunması ihtimali belkide 1000 de 1.
    Teşekkürler

  32. Arkadaşlar Hala Boş Tartışmalar yapılıyor Günümüzün El verdiği güvenlik önlemleri bunlar şuan için en ideali resim kontrolü ilerleyen günlerde daha deişik yontemler bulunursa ki mutlaka bulunacaktır ozaman yeni yontem kullanılır mesela resim olmazda video olur :P
    dediim gibi boş tartışmaları yapmaya gerek yok şunu kullanak bunu kullanak yok session yok cookies en güzeli Resim yanına da bu anlatılanlarıda koydunuzmu Ünlü Düşünür Gaffur abimizin dediği gibi “Tam süper olur” kanımca.

    şuan 9650 nolu Güvenlik Kodunu yazıcam vatana millete hayırlı ossuğn

  33. hüseyin mert

    bence en iyi çözüm tabloda rastgele 5-10 dk aralığında sürelerle tabloda ip ve süre tutulması. php.org.tr deki koruma da çok makul. Eğer daha da koruma yapmak isterseniz “Hackleyenin canı çıksın emi !” diyerek beddua edip, felak nas okumak olacaktır.

  34. Welcome to my hell

    ceaser kardeşimi uzun zamandır tanırım. asp den php ye geçmiş ve öğrenmeye çalışan,yapıcı, yardımsever bi kardeşimiz. aklında olan bir şeyi paylaşmış. biraz ilerletilsin daha iyi bir şeyler olsun demiş. ama hata etmiş işte.. yorumları okudum. bakayım dedim hiç teşekkür edip yapılan yermelere karşı çıkan varmı diye. saolsunlar varmış. daha yapıcı arkadaşlar varmış. bir zamanlar asp ile hiç birşey yapılamaz diyenler her nekadar php kadar olmasada asp nin yabana atılır bir dil olmadığını ofisinde otururken evindeki kahve makinasını çalıştırıp eve gelene kadar kahvesini yapması için çalıştırabildiklerini duyduklarında hayret etmişlerdi ki hayretlik bir durumdeğildi.
    bir çoğunuz bilmesede yorum yazmış. şimdi bende diyeceğim ki madem okadar iyi biliyordunuz cevapsız sorular var forumda. onlarla ilgilenseniz biraz daha iyi olur.

  35. Burak Yücesoy

    Bir arkadaş bahsetmiş. Harflere ne kadar sürede bir basıldığıno kontrol edelim diye. Bence çok güzel bir fikir gerçi client taraflı olacağı için aşmak zor olmayacaktır ama bence bunu biraz daha geliştirebiliriz.

  36. 10 numara kod walla bayıldım :)

  37. ip banlama olayı olursa tek ip üzerinden çıkan ağlarda diğer kullanıcılar için sıkıntı oluşturur örneğin benim çalıştığım kurumdaki ağda 30 pc var hepsi internete bağlı biri eşeklik etse diğeri de hapı yutar

  38. Evet güvenlik kodu olayı çoğu kullanıcıyı rahatsız eden bir olay. Hele ki birbirine karışmış okunamayan kodlar…
    Fakat bu konunun yorumlarını okurken aklıma değişik bir uygulama geldi. şöyle ki bir resim olsun örneğin 5+5 (bu resim karışık karakterlerden de oluşabilir). Bu resmin altında birkaç seçenek olsun (kutucuklar halinde olabilir ve düzgün yazılarla). Örn 5, 10, 20 vs. Doğru kutucuğa tıklanıldığında cevap sayfasına, yuanlışa tıklanıldığında hata sayfasına yönlendirilsin. Genel olarak mantığını anladınız zaten. Bu işlem kullanıcı tam rahat ettirmez ama en azından daha kolay ve zaman kazandırıcı bir yöntem olur.

  39. eksik şu ki :session atanırken browser türünü ve ip nosunu da dikkate alması gerekirdi. Browser türünü dikkate almasıın nedeni programla saldırı yapılmasını engellemek. Gene de farklı bir yöntem sunduğunuz için teşekkürler.

  40. slm arkadaşlar benim derdim tarayıcımla sunucuda birisi text flood atıyor ve tarayıcım kilitleniyor
    denemediğim tarayıcı kalmadı…istediğimse uzun yazıları engelliye bilecek bi betik varmı opera yada mozillah için…teşekkürler şimdiden

Yorum Yap