Dinamik olsun etkileşimli olsun diye yorum sayfası ekleyip o kadar emek verip kodladığımız web sayfalarına malesef saldırılar gelir ve bu saldılar sitelerimiz çalışmaz hale gitirebilir, Bizde bu çalışmamızda otomatik scriptler ile yapılan saldırıların önüne geçmek için güvvenlik kodu uygulaması ekleyip makine saldırlarının önüne geçeceğiz.
Öncelikle projemize GuvenlikResmi diye bir klasör oluşturp içine yine aynı şekilde GuvenlikResmi.aspx sayfasını ekliyoruz. Sayfanın tasarım kısmında hiç bir şey yapmadan F7 ile .cs kod kısmına geçiyoruz.
sayfanın namespace alanına
using System.Web.UI.WebControls;
using System.Collections;
using System.Drawing;
using System.Drawing.Imaging;
izinlerini ekliyoruzki resim oluşturabilelim, drawing kütüphanesi ile güvenlik resmini oluşturacağız.
page load kısmına ise aşağıdaki kodları ekliyoruz.
// Güvenlik kelimesinin uzunluğudur.
const int UZUNLUK = 5;
// Güvenlik kelimesinde kullanılacak karakterler dizesidir.
string[] m_Karakterler = new string[] {
"A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" , "I" ,
"J" , "K" , "L" , "M" , "N" , "O" , "P" , "Q" , "R" ,
"S" , "T" , "U" , "V" , "W" , "X" , "Y" , "Z" , "0" ,
"1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9"
};
// Random olarak rakam oluşturabileceğimiz Random class'ının tanımlanmasıdır.
Random m_Random = new Random();
// Boş güvenlik kelimemizdir.
string m_GuvenlikKelimesi = String.Empty;
for (int i = 0; i < UZUNLUK; i++)
{
// Random oluşturulan rakamın index olarak kabul edilip, m_Karakterler dizesinden ilgili karakterin alındığı satırdır.
m_GuvenlikKelimesi += m_Karakterler[m_Random.Next(m_Karakterler.Length - 1)];
}
// Güvenlik kelimesinin Session'a eklendiği satırdır.
Session.Add("GuvenlikKelimesi", m_GuvenlikKelimesi);
// Resim çizme işleminin yapıldığı bölümdür.
Bitmap m_Resim = new Bitmap(100, 20);
Graphics m_Grafik = Graphics.FromImage(m_Resim);
Font m_Font = new Font("Tahoma", 10, FontStyle.Bold);
Brush m_FircaMavi = new SolidBrush(Color.Blue);
Brush m_FircaBeyaz = new SolidBrush(Color.White);
m_Grafik.FillRectangle(m_FircaBeyaz, 0, 0, m_Resim.Width, m_Resim.Height);
m_Grafik.DrawString(m_GuvenlikKelimesi, m_Font, m_FircaMavi, new PointF(2, 2));
// Resmin ekrana gönderildiği bölümdür.
Response.ContentType = "image/gif";
m_Resim.Save(Response.OutputStream, ImageFormat.Gif);
bu aşamada güvenlik kodunu oluşturduk, bundan sonaki kısım güvenlik kodunu nerde kullanmak istiyarsak ordaki image nesnesini burda oluşturlan resmi çağırmak, biz çalışmamızda yorum kısmına eklemiştik aynı şekilde
detay.aspx sayfamızdaki yorum kısmına ekledğimiz Image nesnesinin ImageUrl kısmını
ImageUrl="~/GuvenlikResmi/GuvenlikResmi.aspx"
bu şekilde tanımladığımızda GuvenlikResmi.Aspx sayfasının oluşturduğu Güvenlik Resmi burda kullandığımız Image nesnesine eklenecektir.
Yorum Kaydet Butonuna aşağıdaki kontrol satırlarını eklerek güvenlik kodu doğrulandığında kaydet işlemini yapıyoru.
if (Session["GuvenlikKelimesi"] == null)
{
lblDurum.Text = "Session bulunamadı. Yorumunuz ile ilgili işlem yapılamadı.";
return;
}
else if (TextBox1.Text == Session["GuvenlikKelimesi"].ToString())
{
Yorum Kaydetme İşlemleri
}