İletişim
Yardım
Bugünki Mesajlar
Ajanda
Üye Listesi
Kayıt ol
Home

Navigation
Geri git   DelikanForum.NET > BILGISAYAR-INTERNET / GRAFIK-WEB > Html - PHP - SQL
Cevapla
 
LinkBack Seçenekler

  #1
Alt 20.03.2007, 18:50
 
SeyFull@H - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 29.07.2005
Mesajlar: 980
Konulara Teşekkür etti: 3
7 Teşekkür aldı 4 Mesajlar için
PHP'de Güvenlik

Web Programlarını tasarlarken çoğumuzun ihmal ettiği bir konu vardır. Güvenlik .Peki nasıl sağlarız bu güvenliği. İlk önce işe HTML Form'larından başlamalıyız. Bir çok sitedeki güvenlik açığını bu formlar oluşturur.Örneğin "<" işaretiyle başlayıp ">" işaretiyle biten bir değişken başınızı bir hayli ağrıtabilir.Veya MySql'e "select * from tablo where alan=$numara" tipi bir sorgu gönderiyorsanız,"alan" integer tipteyse "$numara" değişkeninin string tipte olması ekrana kocaman bir "MySql Error" yazısının gelmesine sebeb olabilir.Peki bunlarla nasıl başa çıkabiliriz.Tabiki sihirli karakterleri yasaklayarak. Bunun için birçok yöntem vardır(Ben 2'sini biliyorum).
1 - İstemci tarafından malum karakterleri yasaklamak.
2 - Sunucu tarafından malum karakterleri yasaklamak.
1-Bu işi Java Script ile yapabiliriz(Ekte Kullanımı Mevcut).Bunun bir tek eksi yönü vardır.Bildiğiniz gibi JavaScript İstemci tarafında çalıştırıldığı için kötü niyetli arkadaşımız HTML Kodunu HDD'ye kaydedip salt form yapabilir.O yüzden bu yöntem pek sağlıklı sayılmaz.Ama herşeyin çözümü olduğu gibi bununda bir çözümü vardır.İstemci bilgisayarın Sunucu bilgisayara gönderdiği bazı bilgilerden yararlanmak.Bu bilgilerin arasında İstemcinin kullandığı Browser,karakter seti('iso-8859-1',vs…) gibi istatistikçilerin işine yarayacak bilgilerin arasında birde HTTP_REFERER isminde önceden tanımlanmış bir değişken vardır.Bu değişken ziyaretçinin girdiği en son sayfayı referans alıp işler.Yani ali.php'ye veli.htm'deki formdan ulaşıyorsanız ali.php'nin HTTP_REFERER değişkeni veli.htm olur(Örneği ekteki zip dosyasından deneyebilirsiniz).O zaman ali.php'ye göndereceğimiz bilgilerin "www.alanadim.com/veli.htm"'den gelip gelmediğini kontrol ettirerek JavaScript'timizi koruşmuş oluruz.
2-Bu işi PHP'ye yaptırmak.Bunu yapabilmek için karakter fonksiyonlarına bir bakmamız gerekir.Benim kullandığım strspn() fonksiyonu işe yarıyor.Bu fonksiyonun asıl işlevi verdiğimiz bir kelimenin içinde vermiş olduğumuz diğer karakterlerin kaç tane olduğunu bulmak.Eğer hiç yoksa 0 sonucunu döndürür. Kullanılışı strspn("Aranacak Kelime", "aranacak harfler"). Örneği benim formumda sadece rakamların girilmesini istiyorum.
PHP- Kodu:
if (strspn ($numara"<>abcdefgğhıijklmnoöprsştuüvyz!^+%&/()=?_-#$")<>0)
{
$hatano=(string)strspn ($numara"<>abcdefgğhıijklmnoöprsştuüvyz!^+%&/()=?_-#$");
echo 
"<center><h1><br><br>Yasaklanmış ".$hatano." Adet Farklı Karakter Girmişsiniz<br>";
echo 
"Yasaklanan Karakterler için Aşağıdaki Kutucuğa Bakınız <br><br><table border=1><tr><td><>abcdefgğhıijklmnoöprsştuüvyz!^+%&/()=?_-#$</td></tr></table></center>";
exit;

Yukardaki kod benim işimi gördü.
Bir başka konu ise string'leri şifrelemektir.PHP bize şifreleme konusunda crypt() isminde bir fonksiyon sunar.Bu fonksiyonla kendi belirleyeceğimiz bir anahtar kelime ile şifreleme sağlanır. Kullanımı
crypt("Şifreyeleyeğimiz Kelime","Anahtar Kelime")
Örneği bu anahtar kelime olarak 'BaRiS' yazarsak,şifrelenecek kelime olarak mutasyon.net yazarsak.mutasyon.net 'BaPV33lj7VdeU' oluverir.Bunun çok kötü bir tarafı var.Bu şekilde oluşturduğunuz şifrelerin geri çevirilememesidir.Ama kelime ve anahatar kelime aynı olduğu sürece sonuçta aynı kalır.Bunu nerde kullanabilirsiniz?Mesela Parolaları veritabanına crypt ederek kaydedin.Parolayı ne siz anlayabilirsiniz nede bir başkası.Ama kullanıcı oturum açarken girdiği Parolayı crypt ederek kontrol ederseniz işinize yarar.
Başka şifreleme yöntemleride vardır.Mesela PGP(Pretty Good Privacy,E-Postaları şifrelemek için kullanılır)'nin GNU Lisansı(Açık Kaynak Kodlu) altında dağıtılan sürümü olan GPG(Gnu Privacy Guard,www.gnupg.com)'yi veya ftp://argeas.cs-net.gr/pub/unix/mcrypt/ adresinden indirebiliceğiniz Mcrypt kullanabilirsiniz.Mcrypt okuyabildiğim kadarıyla(Doküman İngilizce'ydi kusura bakmayın artık.ama ingilizcesi iyi olanlar için PHP Manual gerçekten mükemmel.PDG Hazırlıyor) Standart Olarak BlowFish ayriyeten Des,TripleDes, 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 ve Gost içinde CBC, OFB, CFB ,ECB şifreleme algoritmalarını kullanabiliyor.Anlayacağınız 128 bitlik şifrelemeye bile izin veren güzel bir kütüphane.Ayrıca Mhash( http://mhash.sourceforge.net ) gibi çeşitli PHP şifreleme eklendilerinide kurup deneyebilirsiniz.
SeyFull@H isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
  #2
Alt 26.05.2007, 10:31
Özgür Kuş....
 
BaSkEtBoLcU - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 24.05.2007
Mesajlar: 49
Konulara Teşekkür etti: 0
0 Teşekkür aldı 0 Mesajlar için

teşekkürler.....saol.
BaSkEtBoLcU isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Seçenekler

Yetkileriniz
Yeni Mesaj yazma yetkiniz aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz aktif değil dir.

Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar son Mesaj
Nokia güvenlik kodu jandarma Günümüzde Teknik 2 03.07.2007 10:53
Güvenlik Duvarı ahirzaman Hardware ve Software konusunda Sorular, Cevaplar 4 20.06.2007 22:08
Windows XP de PingBlock binevi güvenlik Kemal_58 Hardware ve Software konusunda Sorular, Cevaplar 0 10.04.2006 19:55
Diyanet'in ABD Güvenlik Konseyi ile ne işi olabilir? âbdulkadir66 Haberler - Siyaset konusu soru ve cevaplar 3 02.09.2005 15:34


Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 19:28 .
Powered by vBulletin Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS Web Design by: vbdesigns.de

 
Anasayfa - Arşiv - Yukarı git