![]() |
![]() |
|
![]() | #1 | |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: ASP Anlatımı (Dökümandır) ASP’DE GÜVENLİK Internet’te iyiniyetli olunmaz. Acı, ama gerçek. Internet’e içine zararlı kod yerleştirilebilecek bir Form koyarsanız, emin olmalısınız ki, birisi bu zararlı kodu koyacaktır. Sadece kötüniyetli kişilerin size söz gelimi elektronik posta adresi veya mesaj görünümünde zararlı kod göndermesini önlemek için değil, fakat normal kullanıcıların yapabilecekleri sıradan hataları yakalamak ve düzeltmek için de önlem almanız gerekir. Server güvenliği son derece önemli bir konu olmakla birlikte, bunu sağlamak genellikle tasarımcının sorumluluğunda değildir. Bununla birlikte sayfalarımızın ve veritabanımızın güvenliği ve Web uygulamalarımızın doğru işlemesi bizden sorulur. Bir form ile sizin sayfalarınıza veya veritabanınıza ne gibi zararlar verilebilir? Bu zararların başında, en hafifinden sizin sayfanızı başka yere yönlendirmek gelebilir. Kötüniyetin ölçüsü arttıkça bu, Server programının açıklarından yararlanarak, Server’daki dosyaları değiştirmeye veya tahrip etmeye kadar gidebilir. Normal ziyaretçi hataları arasında ise sözgelimi elektronik posta adresini iki @ işaretiyle yazmaktan tutun, bu işareti koymamaya, metktubun gideceği bilgisayarın adresini eksik yazmaya kadar uzanan bir dizi yanlışlık bulunabilir. Ziyaretçiler formu eksik doldurabilirler. Bu gibi eksiklikler ve yanlışlıkları daha sonra düzeltmek zaman kaybına yol açar. Kimi zaman eksik doldurulmuş bir Form, bu bilgilerin ulaştırılacağı ASP programında hataya yol açabilir. Bu sebeple, özellikle Form yoluyla alınan bilgilerin denetimi ve doğrulatılması şarttır. Bir Form’un içerdiği bilgilerin denetimi ve doğrulanması iki yerde yapılabilir: istemci-tarafında, sunucu-tarafında. İstemci tarafında, yani ziyaretçiye göndereceğimiz HTML sayfasının içinde yer alan kodlarla yapacağımız denetim-doğrulama, hızlı çalışır; ve ziyaretçi ile sunucu arasında iletişim kurulmadan önce yapılır; böylece ziyaretçinin sözgelimi gönder düğmesini tıkladıktan sonra çok beklemesi gerekmez. Ne var ki bu yöntemde denetim-doğrulama kodu ziyaretçiye gönderilmiştir; kötü niyetli kişi neyi denetlediğinizi görecek ve isterse bu denetimi kaldıracak size zararlı kod parçacıkları gönderebilecektir. Denetimin sunucu tarafında yapılması, belki biraz daha fazla zaman harcamayı gerektirir, fakat güvenlik açısından daha etkili olabilir. Bu bölümde ASP programlarınızın güvenliği ve etkinliği açısından almanız gereken bir çok önlemden ikisini, elektronik posta adresi doğırulama ile mesajların içinden zararlı kodları ayıklama yöntemlerini görelim. Elektronik Adres Doğrulama Ziyaretçimizin doğru adres verdiğini, bu adresin geçerli bir elektronik posta alıcısına ait olduğunu doğrulamamız mümkün değil, ama en azından adresin doğru yazılıp yazılmadığını denetleyebiliriz. Bunu yapmanın bir yolu elektronik adresin içinde @ karakteri ile en az bir adet nokta bulunduğunu garantilemek olabilir. Bunu denetleyecek kodu içeren aşağıdaki örnek kodu email.asp adıyla kaydedin: <% @Language = VBscript %> <HTML> <HEAD> <TITLE>E-Mail Form’u</TITLE> <META http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <META http-equiv="Content-Type" content="text/html; charset=windows-1254"><% If Not IsEmpty(Request.Form("Email")) Then strEmail = Request.Form("Email") If dogruMu(strEmail) Then Response.Write strEmail & " adresini aldık; teşekkür ederiz.<BR>" ' .....[BURAYA DIĞER KODLAR GİRECEK]........................ Else * *Response.Write strEmail & " adresi doğru görünmüyor.<BR>" End If End If %> <FORM "Name="Email" Action="email.asp" Method="post"> Enter an email address: <INPUT Name="Email" Type=Text> <BR> <!- - Buraya formun diğer unsurları girecek - - > <INPUT Type=Submit Value="Gönder"> </FORM> <SCRIPT RUNAT=SERVER LANGUAGE=VBScript> Function dogruMu (byval adres) AtIsareti=0 * * * 'sayaç olarak kullanacağımız Nokta=0 * * * 'değişkenleri sıfırlayalım dogruMu=false * * 'Fonksiyonun değerini yanlış olarak belirleyelim KacKarakter=len(adres) * 'adresin boyutunu bir değişkene atayalım For i=1 to KacKarakter 'döngüyü başlatalım *karakter=mid(adres, i, 1) 'sayacın gösterdiği karakteri alalım *if karakter="@" then * '@ işareti olup olmadığına bakalım * AtIsareti=AtIsareti + 1 '@ işareti ise sayacı bir arttıralım *End If *if karakter="." Then * * 'nokta işaretini arayalım * Nokta=Nokta + 1 * 'nokta ise nokta sayasını bir arttıralım *End if Next * * * * * * 'bir sonraki karaktere geçelim If AtIsareti=1 and Nokta >0 Then 'Bir @ ve en az bir nokta olduysa dogruMu=true 'Fonksiyonun değerini doğru yapalım End If End Function </SCRIPT> </HTML> Bu programı, bu şekliyle sınama amacıyla çalıştırabilirsiniz. Fakat daha sonra programlarınızda kullanmanız gerekirse, bazı değişiklikler yapmanız gerekir. Bu değişiklikleri kodu inceledikten sonra ele alalım. Sayfamızda tek elemanlı bir Form var ve sınama amacıyla buraya elektronik posta adresimizi yazabiliriz. Sayfa açıldığında çalışan VBScript’in kendi-içinde varolan isEmpty fonksiyonunu bir If döngüsü içinde çağırarak, kendi içindeki formdan kendisine bir değer gelip gelmediğine bakacak; değer olmadığını görünce formu sunacaktır. Forma herhangi bir şey yazıp, Gönder düğmesini tıkladığımız zaman ASP kodumuz, bu kez dogruMu adlı fonksiyona formdan gelen Email değişkeninin değerini vererek sonucu bekleyecektir. dogruMu fonksiyonu güvenlik kaygısıyla Server’da çalışan sunucu-tarafı Script’tir; metni ve sonuçları kesinlikle kullanıcıya gönderilmeyecektir. Bu fonksiyon, kendisine aktarılan değişken değerinde, içiçe iki If döngüsü ile @ ve nokta işaretlerini arayarak sayacaktır. Bu sayımın sonucu iki değişkenin değerleri arzu ettiğimiz sayıda (AtIsareti bire eşit ve Nokta sıfırdan büyük) ise kendisini çağıran satıra True (doğru), değilse False (yanlış) değerini gönderecektir. Biliyoruz ki, bir fonksiyon doğru sonuç verirse, If döngüsü birinci komuttan, yanlış sonuç verirse Else bölümünden yoluna devam eder. Bu örnekte, dogruMu fonksiyonu doğru sonuç verirse Response.Write metoduyla Browser penceresine elektronik posta adresinin alındığına ilişkin teşekkür mesajı yazdırılacak; yanlış sonuç verirse, adresin yanlış olduğu bildirilecektir. Gerçek Internet uygulamasında bu tür bir sınama yapacağınız zaman, yukardaki programın fonksiyonu içeren SERVER SCRIPT (“<SCRIPT RUNAT=SERVER....>” diye başlayan ve “</SCRIPT>” diye biten) bölümünü aynen sayfanızın herhangi bir yerine koyabilirsiniz. Daha sonra ziyaretçiden gelecek elektronik posta adresine göndermede bulunduğunuz ilk yerde ve bu adresi tutan değişken ile herhangi bir işlem yapmadan, örneğin veri tabanına yazmadan veya programın içinde bir başka şekilde kullanmadan önce, sadece şuna benzer bir kod bölümü yazmanız yeter: strEmail = Request.Form("Email") If dogruMu(strEmail) Then .....[BURAYA KODLAR GİRECEK]........................ Else * *Response.Write strEmail & " adresi doğru görünmüyor.<BR>" End If Programınızın gereği olarak döngünün ELSE bölümünü değiştirebilirsiniz | |
| ![]() |
![]() |
Etiketler |
anlatimi, anlatımı, asp, dokumandir, dökümandır |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
![]() | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
Exsbans anlatımı | LimiT | Eğitim Dünyası | 0 | 16 Nisan 2020 20:33 |
Who Konu Anlatımı | Mylife | IRCd | 0 | 29 Temmuz 2019 13:11 |
Who Konu Anlatımı | ichi | IRCd | 7 | 17 Nisan 2019 10:11 |
Who Konu Anlatımı | vioLeta | IRCd | 11 | 10 Nisan 2019 20:39 |
C# for ( for loop ) anlatımı | jquery | C# | 0 | 11 Ekim 2012 15:15 |