هدف استفاده از CAPTCHA و چگونگی پیاده سازی

ارسال شده توسط آرمین • شنبه، 10 آذر 1386 • موضوع: امنیت
در برنامه ی تحت وب که نیاز به وارد شدن اطلاعات توسط کاربران هست برای اینکه اطلاعات توسط ماشین و روبات وارد نشه از CAPTCHA استفاده می کنیم. به عنوان مثال یک تصویر شامل یک کد میذاریم و از کاربر می خوایم که کد موجود در تصویر رو به صورت نوشته وارد کنه تا فیلتری باشه برای جلوگیری از ارسال اطلاعات توسط ماشین.
حالا دو بحث در این مورد وجود داره یکی اینکه چه فیلتر و با چه کیفتی قرار داده بشه در حال حاضر به صورت رایج از تصویر و گاهی از صدا و نوشته استفاده میشه که کاربر بعد از دیدن عکس یا شنیدن صدا توسط پر کردن ورودی به صورت نوشته در فرم و ارسال اون از فیلتر رد میشه که در این پست قصد بررسی اون رو ندارم و اما بحث دوم اینه که این فیلتر به چه صورت پیاده سازی شه.

فرض می کنیم از تصویر استفاده شده که این تصویر نشان دهنده عددی است و کاربر باید عدد رو به صورت نوشته برای احراز هویت انسانی(هوشمندی!) وارد کنه؛ حال چطور باید این فیلتر را پیاده کرد که قابل دور زدن نباشه؛

سه نکته اصلی وجود داره:

۱- عدد باید در سمت سرور تعیین شه و هنگام درخواست تصویر یا در هنگام تعیین عدد عکس تولید شه (این تولید عکس بستگی به شرایط داره و البته برنامه نویس)

۲- نحوه تولید تصویر عدد نباید به نحوی باشه که عدد در خروجی که برای کلاینت ارسال می شه باشه
مثلاً در صورتی که برای نمایش تصویر با عدد مورد نظر داشته باشیم:


<img src="captcha.php?code=1234" />


در این حالت استفاده از تصویر زیر سوال میره!

۳- در هر بار درخواست و ارسال فرم عدد باید دوباره تعیین شه؛ در بعضی موارد این به روز رسانی عدد به عهده تولید کننده عدد گذاشته میشه که در این حالت در صورتی که محدودیتی برای ارسال درخواست برای کاربر وجود نداشته باشه وقتی تقاضایی برای مشاهده تصویر به سمت سرور ارسال نشه عدد به روز نمیشه و در صورتی که به نحوی ماشین به عدد موجود به تصویر برای یک بار برسه به هر تعدادی می تونه درخواست ارسال کنه

قطعاً باید موارد دیگه در برنامه از جمله محدودیت ارسال یا محدودیت تلاش های ناموفق و ... در نظر گرفته شه تا کارآیی به حد ایده آل قابل دسترس برسه.

0 دنبالک ها

  1. هیچ دنبالکی وجود ندارد

7 نظر ها

نمایش نظرات به صورت (خطی | بند کشی شده)
  1. سلام
    قالب جدید سایتت قشنگه!
    نظرم باید رنج مخاطبین وبلاگت رو بسنجی بعد نسبت به اونها مطلب بریزی. اینی که گذاشتی حداقل به درد من و امثال من نمیخوره!!! ;-)
  2. آرش جان مطالب وب عمومی هست و با یک جستجو می شود به مطالب دست یافت،من این صفحه را از گوگل پیدا کردم.
    ممنون از توضیحات خوبتان،آرمین جان
  3. خواهش می‌کنم.
  4. سلام
    مرسی آرش جان
    این پست یک دلیلش این بود که در طول یک مدت محدود با چند تا از موارد مشابه (پیاده سازی غلط) برخورد داشتم؛ دیدم سوژه بدی نیست :-D
  5. در مورد شماره سه ، بستگي داره کجا داره استفاده ميشه. در اغلب موارد اين چيزي که شما گفتيد اشتباهه ! چون يکي از اهداف تصوير امنيتي دور از دسترس بودن روبوت هاست که شما اشاره کرديد و شايد دليل مهمتر جلوگيري از تکرار در ارسالهاي متواليست (مخصوصاً در مورد فرم هاي تماس با ما) پس چه بهتره که در هر بار چک کردن کد امنيتي، چه صحيح و چه غلط، آن را fix کنيم ! (خيلي سعي کردم پارسي رو پاس بدارم اما نشد :-D )
    موفق باشي
  6. کجاش اشتباهه؟!! و در کدوم موارد که غالبن؟
    با دقت بخون چی نوشتم:
    >>*در هر بار درخواست و ارسال فرم* عدد باید دوباره تعیین شه؛
    که گفته ات رو پوشش میده:
    >>جلوگيري از تکرار در ارسالهاي متواليست (مخصوصاً در مورد فرم هاي تماس با ما) پس چه بهتره که در هر بار چک کردن کد امنيتي، چه صحيح و چه غلط، آن را fix کنيم !

    موفق باشی :-)
  7. سلام بسیار ممنون از این مطلب

    اما ای کاش توضیحات بیشتری میدادید اما بازم بسیار مفید بود

ارسال نظر


Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

نظرات ارسال شده قبل از نمایش داده شدن، باید مدیریت شوند.


A Simple Sidebar