• illustrator Curse
  • 7Learn Android Course
  • 7Learn SEO Course
  • 7Learn WP Theme Course

    حرفه ای ترین دوره آموزش طراحی قالب وردپرس



  آیا می دانید میانگین رضایت دانشجویان سون لرن از دوره ها، بیش از 94% می باشد!

آموزش ساخت کد امنیتی (Captcha) در PHP و ASP.NET

36068 ۲۱ مرداد ۹۲
1 2

دوستان سلام،توی این مطلب قصد دارم یکی از اسکریپت های لازم و به درد بخور توی دنیای وب که برای امنیت وب سایت شما خیلی خیلی مهمه رو آموزش بدم،هر چند اسکریپت های آمادش هم زیاده،شرکت بزرگی مثل گوگل هم همین سرویس رو خیلی پیشرفته ارائه میکنه،که خیلیا هم ازش استفاده میکنن، اما خوب خیلی از دوستان میخوان این کارو خودشون انجام بدن و سلیقه خودشون رو هم توی این قضییه دخالت بدن.این بار هم اسکریپت رو توی PHP و ASP.NET پیاده میکنیم.پس با ما همراه باشید.

کد های PHP

خوب ما این جا قراره دو تا فایل ایجاد کنیم،یکی فایل index.php که صفحه اصلی ما هست که کد لازم رو تولید میکنه و بعدا نمایش میده و صفحه SecurityCode.php که کد تولید شده در صفحه index رو برای ما تبدیل به یه تصویر میکنه و به خروجی میبره.

کد های لازم در صفحه اول رو اینطوری مینویسیم.

خوب اول از همه سشن رو روشن کردیم چون لازمش داریم،مخوایم کد تولید شده رو با همین سشن بفرستیم به صفحه تولبد عکس ما،بعدش ما یه متغییر تعریف کردیم و اون کاراکترهای لازم رو که میخوایم توی کد امنیتی استفاده بشن رو توش قرار دادیم (من همینجوری صفحه کلید رو از دکمه اول تا آخرش زدم و بعدشم اعداد رو اضافه کردم)،بعد از اون یه متغییر تعریف کریدم که قراره کد توی اون ذخیره بشه،فعلا خالیش گذاشتیم،حالا یه حلقه تعریف میکنیم که تو هر بار اجرای خودش به صورت تصادفی یکی از اون کارکتر های متفییر text رو برای ما برمیگردونه(با کلمه rand ما اولش یه عدد از صفر تا strlen رشته اصلی انتخاب میکنیم،بوسیله substr مقدار شروع انتخاب زیر رشته رو همون عدد رندوم قرار دادیم وطولش رو هم یک گذاشتیم)  و به متغییر code که از اول خالی بوده اضافه میکنه،بعد از حلقه کد تصادفی ما ایجاد شده (اینجا ما تعداد دور حلقه روگذاشتیم 6 و این باعث میشه ما یه کد 6 حرفی داشته باشیم شما می تونید کم یا زیادش کنید یا مثلا بازم یه عدد رندوم بهش بدید)،آخر کار هم ما همین کد تولید شده رو گذاشتیم توی سشن،خوب کد های مربوط به صفحه index تموم شد حالا میریم سراغ صفحه تولید تصویر.

خوب اول از همه سشن روشن،بعدشم چون قراره خروجی این فایل از نوع تصویر باشه پس ما اومدیم با تنظیم هدر خروجی فایل رو گذاشتیم روی تصویر jpg،بعدشم مقدار کد رو از سشن خوندیم و گذاشتیم توی یه متغییر،ما اینجا اومدیم یه سری متغییر تعریف کردیم که مشخصات اون تصویر رو تویخودش داره،اندازه فونت رو گذاشتیم 30،طول عکس شده 200 پیکسل و ارتفاع تصویر هم شده 60 پیکسل.

نکته : دستورات این قسمت مربوط میشه به کتابخانه GD که روی wampserver و اکثر هاستینگ ها هم نصب و فعاله،از این کتابخانه برای تولید تصاویر به این صورت که می بینید استفاده میشه

خوب حالا با متد imagecreate و با دادن طول و عرض بهش یه تصویر می سازیم و اونو توی متغییر image قرار میدیم،بعدشم با متد imagecolorallocate تصویر مون رو با رنگ خاکستری پر میکنیم(اون مقادیر عددی به صورت RGB هستن)،خوب حالا برای رنگ نوشته مون هم با همون متد یه  رنگ مشکی میگیریم و توی متغییر text_color قرار میدیم،حالا میخوایم با متد imagettftext متن کد رو روی تصویرمون بنویسیم.

  • پارامتر 1: متغییر تصویر رو دریافت میکنه که همون image هست.
  • پارامتر 2 : سایز فونت رو دریافت میکنه که ما اون بالا تعریف کردیم.
  • پارامتر 3 :زاویه چرخش متن رو توی عکس دریافت میکنه که ما گذاشتیم 0.
  • پارامتر 4 :فاصله x رو دریافت میکنه،فاصله نوشته از سمت چپ نسبت به تصویر.
  • پارمتر 5 : فاصله y رو دریافت میکنه،فاصله نوشته از سمت بالا نسبت به تصویر.
  • پارامتر 6 : رنگ متن رو که تولید کرده بودیم دریافت میکنه.
  • پارامتر 7 :یه فونت رو دریافت میکنه که با اون متن رو می نویسه(آدرس فونت باید مستقیم باشه،من الان فونت روگذاشتم کنار فایل)
  • پارامتر 8 :اینم متنی رو که میخوایم روی تصویر بنویسیم مشخص میکنه که این جا همون کد امنیتی ماست.

خوب آخر کار هم با دستور imagejpeg که متغییر تصویر رو به عنوان ورودی میگیره،تصویر خودمون رو تولید میکنیم.

خوب حالا ما توی فایل index.php خودمون برای نمایش این تصویر و نتیجه کار از یه تگ img استفاده میکنیم و src اونو برابر فایل SecurityCode خودمون قرار میدیم (یادتون باشه نوع محتوای فایل SecurityCode تصویر هست).

اینم کد های HTML.

خروجی کار هم اینطوری میشه.

p20-final-result

دانلود فایل های PHP

خوب دوستان توی صفحه بعد کد های ASP.NET رو می نویسیم.

1 2
:: مطالب جدید سون لرن را از طریق ایمیل دریافت کنید :

دیدگاه ها 48 دیدگاه برای این مطلب ارسال شده است. نظردهی برای این مطلب بسته شده است .

  • ‏‏

    سلام ببخشید چرا مل من نمایش داده نمیشه ؟

    • ‏‏
      کیوان علی محمدی(۱۵ شهریور ۱۳۹۳)

      دلایل مختلف میتونه داشته باشه،حتما کدها رو کامل و طبق آموزش چک کنید.

  • ورود/عضویت سریع با اکانت فیسبوک/جیمیل شما

    :: شما می توانید با استفاده از اکانت یاهو یا جیمیل خود به صورت کاملا امن، سریع و بدون نیاز به ورود اطلاعات عضو و وارد سایت شوید. در این صورت هیچ نیازی به ورود نام کاربری و رمز عبور خود نخواهید داشت و هویت شما از طریق ایمیلتان مورد تائید قرار می گیرد .
    برای استفاده از این روش باید در اکانت گوگل(جیمیل) و یا یاهوی خود لاگین باشید .
    عضویت/ ورود سریع با :
    در حال اتصال ...

    ورود به سایت

    ورود سریع با :
    در حال اتصال ...

    جستجو در سون لرن

    عبارت :
    7LearnTelegram