info@hamdsoft.ir hamd-soft

گروه برنامه نویسی حمد | نمونه ای از کد امنیتی captcha به روشی ساده در زبان C#.NET
نمونه ای از کد امنیتی captcha به روشی ساده در زبان C#.NET

در بسیاری از فرم ها برای آنکه مطمئن شویم اطلاعاتی که در سیستم ثبت یا از پایگاه داده واکشی می شوند توسط انسان انجام می شود یا ماشین از captcha استفاده می کنیم

یکی از روش های هک ارسال request های متعدد برای سرور می باشد، که ممکن است در ارسال درخواست ها برای سرور اطلاعاتی در پایگاه داده ذخیره شود که در این صورت با ارسال اطلاعات بیهوده توسط یک ربات سرور یا دیتابیس ما اصطلاحا down خواهد شد یا در یک صفحه ورود ممکن ربات یا نرم افزار آنقدر request ارسال نماید تا نام کاربری و رمز عبور مورد نظر را برای وورد به سیستم پیدا نماید

کد امنیتی یا هممون captcha مانع از ایجاد این مشکلات در فرم ها می شود و در نهایت باعث افزایش امنیت در برنامه شما خواهد شد.

1- فایل captcha.ashx را ایجاد نموده و کد های ذیل را در آن کپی نمایید

<%@ WebHandler Language="C#" Class="captcha" %>

using System;
using System.Web;
using System.Drawing.Text;
using System.Drawing;

public class captcha : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
    
    public void ProcessRequest (HttpContext context) {
        string cap = "";
        Random rnd = new Random();        
        for (int i = 0; i < 5; i++)
        {
            cap += Convert.ToString(rnd.Next(0, 9));
        }          
        context.Session["capt"] = cap;               
        CreateImage( Convert.ToString(context.Session["capt"]) ).Save(context.Response.OutputStream,
                       System.Drawing.Imaging.ImageFormat.Gif);           
         
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
    
    private static Bitmap CreateImage(string sImageText)
    {
        
        Bitmap bmpImage = new Bitmap(1, 1);

        int iWidth = 0;
        int iHeight = 0;
        Font MyFont = new Font("Segoe Print", 18 ,
                           System.Drawing.FontStyle.Bold,
                           System.Drawing.GraphicsUnit.Point);
        
        Graphics MyGraphics = Graphics.FromImage(bmpImage);

        iWidth = (int)MyGraphics.MeasureString(sImageText, MyFont).Width;
        iHeight = (int)MyGraphics.MeasureString(sImageText, MyFont).Height;

        bmpImage = new Bitmap(bmpImage, new Size(iWidth, iHeight));
        MyGraphics = Graphics.FromImage(bmpImage);       
        MyGraphics.Clear(Color.WhiteSmoke);
        
        Color c2 = Color.FromArgb(90, 90, 90);        
        MyGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;
        MyGraphics.DrawString(sImageText, MyFont,
                            new SolidBrush(c2), 0, 0);
        MyGraphics.Flush();
        return (bmpImage);
    }
    

}

 

2- گام بعدی فراخوانی و نمایش captcha در صفحه aspx یا هر صفحه مورد نظر شما می باشد، برای این کار کافی است فایل ساخته شده را در یک تگ img فراخوانی کنیم

            <img src="captcha.ashx" />
            <br />
            Captcha Code: <asp:TextBox ID="captcha" runat="server"></asp:TextBox>
            <br />
            <asp:Button ID="Button1" runat="server" Text="Check Captcha" OnClick="Button1_Click" />

 

 

 

 

 

 

3- بررسی درستی کد امنیتی وارد شده

 

    protected void Button1_Click(object sender, EventArgs e)
    {
        if(captcha.Text != Session["capt"])
            Response.Write("کد امنیتی وارد شده اشتباه است");
    }

 

برچسب ها: mvc ,asp.net ,c#


1393/10/03-18:57:01 مهدی سلطانی
متن خوبی بود جناب نوری

نظر شما














تماس با ما

  • همراه: 09127507180
  • ایمیل: info@hamdsoft.ir
  • اسکایپ: hamd-soft

نقشه سایت

سایت های مفید


کلیه حقوق مادی و معنوی سایت متعلق به گروه برنامه نویسی حمد می باشد