Php’de Resim Doğrulama(Güvenlik) Kodu Nasıl Yapılır?
Arkadaşlar bugün sizlere Php’de resim doğrulama kodu yapımından bahsedeceğiz. Yapacağımız bu güvenlik kodunun gündelik hayatta nerelerde kullandığımızla isterseniz yazımıza başlayalım. Keyifli okumalar 🙂
Günümüzde istediğimiz birçok bilgiye internetten erişebiliyor, alışveriş dahil birçok işimizi internet üzerinden hallediyoruz. İnternetteki sayısız sitenin veritabanında biriken milyonlarca kişinin üyelik bilgileri, kötü niyetli kişilerin iştahını kabartmış olmalı ki, işe koyulan kötü niyetli kişiler, yazılan küçük bilgisayar programları (bot) sayesinde rastgele üyelik bilgileri ve şifreler üreterek bu tür sitelere giriş yapıp, sahte üyelik bilgileri ile işlemler yapmaya yada insanların bilgilerine ulaşıp, bu bilgileri değişik amaçlarda kullanmaya başladılar.
Bu tür zararlı bilgisayar programcılarının ve bu programları kullanmaya meyilli kötü niyetli kişilerin sayısının artması ile birlikte, üyelik bilgisi isteyen sitelere giriş yapmak isteyenin bir bilgisayar programı mı? yoksa bir insan mı? olduğunu anlamaya ihtiyaç doğdu. Bu ihtiyacın sonunda ise Doğrulama kodu başka bir adıyla Güvenlik kodu uygulamaları doğdu. Kısa bir şekilde neden ihtiyaç duyduğumuzu açıkladıktan sonra yazımıza kaldığımız yerden devam edelim.
Yapacağımız bu uygulamada ağırlıklı olarak doğrulama kodunu yaparken oluşacak kodun sayılar, özel karakterler ve harflerden oluşmasını sağlamak adına uygun gördüğümüz şifreleme yönteminden doğrulama kodunun oluşmasını, kodun ilk bakışta anlaşılmamasını sağlamak için yapacağımız yöntemlerden (renklendirme ve çizgilendirme) ve girdiğimiz kodun doğru olması durumunda yönlendirileceğimiz sayfa ve yanlış girilmesi durumunda tekrar doğrulama ekranına gitmemize neden olan yönlendirilmeden bahsedeceğiz. Kodumuzun içinde bazı önemli satırları daha detaylı bir şekilde ele alacağız. Hazırsanız başlayalım.
Öncelikle index.php adında bir php dosyası açalım. Buraya basit html yapısını oluştuyoruz. Daha sonra <body> kısmına bir form yapısı oluşturarak method’unu “get” ve action’ını “sonuc.php” yapıyoruz. Bu form alanında gireceğimiz ilgiler doğrultusunda oluşan eyleme göre yönlendirileceğimiz sayfayı belirlemiş oluyoruz. Bir başka deyişle ekranda görünen doğrulama koduna göre gireceğimiz kodumuzun doğru veya yanlış olduğunu anlamak için yönlendirileceğimiz sonuc.php sayfasına gitmemizi sağlayan durumları belirtiyoruz. Form yapısının içerisine doğrulama kodumuzun oluşmasını sağlayacak bir image türünde bir yapı oluşturuyoruz ve burada oluşacak olan doğrulama kodunun verilerini dogrulama.php adında yeni bir php dosyasından çekeceğimizi belirtiyoruz.
Doğrulama kodunun yenilenme isteğini karşılamak adına(güvenlik kodunun okunamaması durumda yenilenmesini istediğimizde) “Doğrulama kodunu değiştir” isminde bir buton oluşturuyoruz. onClick özelliği ile konum girilerek adrese veya sayfaya yönlendirme işlemini gerçekleştireceğiz. Bu özelliği ile butona tıklanması durumunda gidilecek sayfamızı belirliyoruz. Bu yazımızda yapacağımız doğrulama kodunun her sayfa yenilenmesinde değişeceğini bildiğimizi varsayarak gidilecek sayfayı “index.php” yani tekrardan şu an ki mevcut bulduğumuz sayfaya gidilmesi şeklinde belirterek doğrulama resminin sayfa yenilenmişcesine değişmesini sağlıyoruz. Hemen altına güvenlik kodumuzu gireceğimiz maksimum 6 karakteri geçmeyecek bir metin alanı oluşturuyoruz.
doğrulama.php’de öncelikle oluşturulan kodun diğer sayfalara taşınabilmesi için oturum başlatıyoruz. 0 ile 9999 arasında random bir sayı oluşturup bunu crypt ile şifreleme işlemini gerçekleştiriyoruz ve $sifreli adındaki değişkenimize atıyoruz. Php’de şifreleme yöntemleri hakkında bilgi sahibi olmak istiyorsanız buradaki yazımızı inceleyebilirsiniz. crypt ile şifrelenmiş sayımızın 6 karakterden ibaret olması için substr ile sayımızın 5. karakterden itibaren 6 adet karakter üretmesini sağlıyoruz. strtoupper ile istediğimiz sayıda oluşan bu güvenlik kod karakter bilgisinin büyük yazılmasını sağlıyoruz ve $dogrulamaKodu adlı değişkenimize atıyoruz. Doğrulama için kullanılacak kodumuzu açılan oturuma kaydediyoruz. Ardından resmin boyutlarını ve üzerinde çalışacağımız resmimizi ImageCreate ile oluşturup $image adlı değişkenimize atıyoruz.
Şimdi doğrulama kodumuzun ilk seferde anlaşılmasını zorlaştırmak için yapacağımız yöntemlerden bahsedeceğiz. Güvenlik kodumuzun rengini siyah olarak ayarlayıp arka plandaki rengini beyaz olarak ayarlıyoruz. Güvenlik kodunun üzerinden geçen çizgilerin renklerini belirliyoruz. Bu renklerin her seferinden fark olmasını istediğimizden rand(0, 255) ile renk kodlarının her seferinde değişimini sağlıyoruz. Kodlarımızın arkasında bulunan renkli çemberlerimizin oluşumu sağlıyoruz.
Arka planı beyaz yaparak oluşturulan doğrulama kodunu resime yazıyoruz. Görünümü biraz karıştırmak için çizgilerle görünümü zorlaştırıyoruz. Dilersek imageline() satırlarını silerek görünümün zorluğunu veya düzeyini ayarlayabiliriz. Tarayıcıya dosyamızın tipini yolluyoruz. Resmimizi Jpg formatında basıyoruz.
Şimdi index.php sayfasında yazdığımız güvenlik kodunun doğruluğuna ve yanlışlığına göre yönlendirileceğimiz sayfada(sonuc.php) bir geri bildirim alanı yapıyoruz. Basit olarak if-else metoduyla kodumuzun 6 karakter daha az girilmesi durumunda 6 karakter girilme zorunluluğu şeklinde bir bildirim gösterilmesini istiyoruz. Bir başka şartta ise kodumuzun doğru girilmesi durumu ve yanlış girilmesi durumunu göstermektedir. Sizler için konunun daha iyi anlaşılması açısından uygulamamızı Gist’te daha detaylı bir şekilde inceleyelim.
[mks_tabs nav=”index.php”]
[mks_tab_item title=”index.php”]
[/mks_tab_item]
[mks_tab_item title=”dogrulama.php”]
[/mks_tab_item]
[mks_tab_item title=”sonuc.php”]
[/mks_tab_item]
[/mks_tabs]
Uygulamamızın çıktısını ise şu şekildedir.
Arkadaşlar bu yazıda Php’de basitçe güvenlik kodu nasıl yapılacağını ele aldık. Yazı hakkında görüş ve düşüncelerinizi yorum alanına belirtirseniz sevinirim. Bir sonraki yazıda görüşmek dileğiyle. Mutfakta kalın 🙂
3 Yorumlar
Verdiğiniz bilgiler için çok teşekkür ederim.
img.php dosyası yok
o kısmı dogrulama.php olarak ayarla