TAHA
11-05-2009, 08:22 PM
سلام خدمت همه دوستان http://pnu-club.com/images/void/rose.png
همون طور که می دانید کد های امنیتی capcha , image capcha , securty capcha ,securty image
که همش یک معنی رو میده . و برای این استفاده میشه که . سیستم انسان رو شناسایی کنه
و جهت امنیت رمز عبور یا جلوگیری از spam استفاده میشه که
نقش بسیار مهمی در امنیت سایت داره . در بسیاری از
شرایط به دلیل مشکل در ساختار به راحتی قابل عبور است !!! مثل کد امنیتی phpnuke (در این تاریخ ) .
شاید شما بگین که کد های امنیتی به وسیله تلاش های خیلی زیاد یا آدم های خیلی
باهوش و ابر رایانه یا ..... کرک می شه ولی اینطور نیست !! . شاید کم تر از 1 ساعت !!!
و با کمی فکر !! + توابع gd در php !! به وسیله یک شخص معمولی قابل کرک باشه
عکس های زیر به راحتی قابل کرک هستند http://pnu-club.com/images/smilies/free-evil-grin-smileys-750.gif:
http://pnu-club.com/imported/mising.jpg
(phpnuke)
و چند عکس در ضمیمه هست اونهای که اسمشون bad هست هم قابل کرک هستند
شامل
bad1.jpg -> سیستم نظر بدهید mihanblog
bad2.gif -> سیستم نظر بدهید blogfa (که در حال حاضر تعویض کرد!!)
good1.bmp -> نمونه یک capcha خوب و معمولی
good2.png -> نمونه یک capcha خوب و معمولی
پس چه باید کرد ؟ http://pnu-club.com/images/smilies/free-indifferent-smileys-722.gifhttp://pnu-club.com/images/smilies/free-scared-smileys-709.gif http://pnu-club.com/images/smilies/free-scared-smileys-709.gif
در ساخت کد های امنیتی باید از قوانینی پیروی کنید که خیلی ها نمی کنند !! تا کاری کنید که کد امنیتی . در 1 ساعت کرک نشه !! و به قول دوستامون به وسیله تلاش های خیلی زیاد یا آدم های خیلی
باهوش و ابر رایانه یا ..... کرک بشه :)
این نکات عبارتند از ...
1.که خیلی ساده هست . اینه که کد امنیتی باید عکس باشه . نه text !!!
2.از تمامی حروف و اعداد استفاده شود (اگر از حروف فارسی هم استفاده کنید که بسیار عالی می شود !!)
3.تا می توانید در کد های امنیتی از ایجاد نظم جلوگیری کنید !!
4. از رنگ های تصادفی برای هر کدام از کارکتر ها و یا خط پشت آنها استفاده کنید
5. محدوده رنگ ها را کوچک نکنید (برای مثال بین قرمز و قرمز روشن ) چون هیچ تاثیری نداره (قابل کرک هست)
6.کارکتر ها را روبه چب و راست بر مبنای یک عدد تصادفی کج کنید . بسیار مهم است
توجه کنید عداد باید تصادفی باشند در غیر این صورت . بدون تاثیر هستند ! . (طرف الگو رو به اندازه مشخص کچ می کنه )
7. اگر در پشت کد امنیتی برای گمراه کردن از خطوطی استفاده می کنید . سعی کنید . نظم نداشته باشند
چون باز هم بی تاثیر می شوند
8.از پسوند های jpg و bmp استفاده کنید زیرا تعداد رنگ های آنها بیشتر است (برای مثال شما در یک عکس jpg
میبینی که یک قسمتی سیاه رنگ هست . وقتی در photoshop روش زوم می کنی میبینی همون سیاه از 10 تا
رنگ تو رنج سیاه ساخته شده . حالا همون عکس رو به gif تبدیل میکنی و میبینی که همه اون قسمت تک رنگ سیاه شده !! )
9..در ساخت کد امنیتی از چندین فونت باز هم به صورت تصادفی استفاده کنید
10. از همه مهم تر است و ...... باز هم خیلی ها از قلم میندازند !!
اینه که بعد از ساخت یک کد امنیتی خوب . چطور ازش استفاده کنیم .
کار رو با یک مثال جالب از یک کد امنیتی به ظاهر غیر قابل عبور شروع می کنم
ما اینجا یک کد امنیتی بسیار قوی داریم که در آدرس
http://site.com/capcha.jpg?c=DH3K45KG78HBH74I7YJHhghgU
که با استفاده از DH3K45KG78HBH74I7YJHhghgU یک کد امنیتی می سازه
عکس باز میشه . در داخل فرم هم همین عکس نشون داده میشه
به شکل زیر
کد HTML:
<form method="POST" action="">
<img src="http://site.com/capcha.jpg?c=DH3K45KG78HBH74I7YJHhghgU"/>
<input type="hidden" value="DH3K45KG78HBH74I7YJHhghgU" name="Imagecode"/>
<input type="text" name="UserCode"/>
<input type="submit"/>
</form>
در کد بالا کاربر کد امنیتی که در عکس میبینه رو در فیلد UserCode وارد می کنه .
و همون طور که میبینید در فیلد Imagecode هم از یک کد با الگوریتم بسیار پیچیده استفاده شده
( که بیلگیتس هم نمی تونه ازش سر در بیاره . و اگه ببینه سیکته می کنه اون وقت بی windows میشیم ) .
وقتی کاربر submit رو میزنه . 2 مقدار به سمت سرور میره . کد Imagecode یه شکل اولش در سرور بر می گرده
و با Imagecode مقایسه میشه . اگر برابر بود . یعنی شما آدم هستی و وارد میشی
حالا برای عبور از این کد بالا فقط لازمه شما همین فرم بالا رو یک بار با دست پر کنی بعد تا 9999999E بار
هم تکرارش کنی کار می کنه .
خوب برای جلوگیری فقط لازمه از کدی استفاده کنیم که فقط یک بار قابل استفاده باشه . که دیگه به خلاقیت شما
بستگی داره
3 را همین الان به نظرم می رسه
1. استفاده از زمان
2. استفاده از session
3. بگردین یه الگوریتم خوب پیدا کنید !!!
و این نکته رو هم بگم که از هر الگوریتمی استفاده می کنید لازمه خاص و پیچیده باشه
من دیدم بعضی ها میاد کد ها رو میچینن کنار هم مثلا با تاریخ به این طورت 3da3s_12 بعد base64
میکنند باید این نکته رو به دوستان بگم که هکر ها و کرکر ها هیمشه فکر اینجا رو می کنند در ضمن
امکانات هم دارند برای مثال برنامه ای که . کد گذاری های معروف قابل برگشت رو نه به یک صورت بلکه
10000 صورت تست می کنند
از دوستان خواهش دارم اگر الگوریتم های خوبی سراغ دارند
بگذارند
در این آدرس هم یک اسکریپت capcha با قابلیت تنظیم بسیار خوب براس استفاده هست
Visual and Audio PHP CAPTCHA Generation Class - Ed Eliot (http://www.ejeliot.com/pages/2) که خیلی خوبه http://pnu-club.com/images/smilies/wink.gif
همون طور که می دانید کد های امنیتی capcha , image capcha , securty capcha ,securty image
که همش یک معنی رو میده . و برای این استفاده میشه که . سیستم انسان رو شناسایی کنه
و جهت امنیت رمز عبور یا جلوگیری از spam استفاده میشه که
نقش بسیار مهمی در امنیت سایت داره . در بسیاری از
شرایط به دلیل مشکل در ساختار به راحتی قابل عبور است !!! مثل کد امنیتی phpnuke (در این تاریخ ) .
شاید شما بگین که کد های امنیتی به وسیله تلاش های خیلی زیاد یا آدم های خیلی
باهوش و ابر رایانه یا ..... کرک می شه ولی اینطور نیست !! . شاید کم تر از 1 ساعت !!!
و با کمی فکر !! + توابع gd در php !! به وسیله یک شخص معمولی قابل کرک باشه
عکس های زیر به راحتی قابل کرک هستند http://pnu-club.com/images/smilies/free-evil-grin-smileys-750.gif:
http://pnu-club.com/imported/mising.jpg
(phpnuke)
و چند عکس در ضمیمه هست اونهای که اسمشون bad هست هم قابل کرک هستند
شامل
bad1.jpg -> سیستم نظر بدهید mihanblog
bad2.gif -> سیستم نظر بدهید blogfa (که در حال حاضر تعویض کرد!!)
good1.bmp -> نمونه یک capcha خوب و معمولی
good2.png -> نمونه یک capcha خوب و معمولی
پس چه باید کرد ؟ http://pnu-club.com/images/smilies/free-indifferent-smileys-722.gifhttp://pnu-club.com/images/smilies/free-scared-smileys-709.gif http://pnu-club.com/images/smilies/free-scared-smileys-709.gif
در ساخت کد های امنیتی باید از قوانینی پیروی کنید که خیلی ها نمی کنند !! تا کاری کنید که کد امنیتی . در 1 ساعت کرک نشه !! و به قول دوستامون به وسیله تلاش های خیلی زیاد یا آدم های خیلی
باهوش و ابر رایانه یا ..... کرک بشه :)
این نکات عبارتند از ...
1.که خیلی ساده هست . اینه که کد امنیتی باید عکس باشه . نه text !!!
2.از تمامی حروف و اعداد استفاده شود (اگر از حروف فارسی هم استفاده کنید که بسیار عالی می شود !!)
3.تا می توانید در کد های امنیتی از ایجاد نظم جلوگیری کنید !!
4. از رنگ های تصادفی برای هر کدام از کارکتر ها و یا خط پشت آنها استفاده کنید
5. محدوده رنگ ها را کوچک نکنید (برای مثال بین قرمز و قرمز روشن ) چون هیچ تاثیری نداره (قابل کرک هست)
6.کارکتر ها را روبه چب و راست بر مبنای یک عدد تصادفی کج کنید . بسیار مهم است
توجه کنید عداد باید تصادفی باشند در غیر این صورت . بدون تاثیر هستند ! . (طرف الگو رو به اندازه مشخص کچ می کنه )
7. اگر در پشت کد امنیتی برای گمراه کردن از خطوطی استفاده می کنید . سعی کنید . نظم نداشته باشند
چون باز هم بی تاثیر می شوند
8.از پسوند های jpg و bmp استفاده کنید زیرا تعداد رنگ های آنها بیشتر است (برای مثال شما در یک عکس jpg
میبینی که یک قسمتی سیاه رنگ هست . وقتی در photoshop روش زوم می کنی میبینی همون سیاه از 10 تا
رنگ تو رنج سیاه ساخته شده . حالا همون عکس رو به gif تبدیل میکنی و میبینی که همه اون قسمت تک رنگ سیاه شده !! )
9..در ساخت کد امنیتی از چندین فونت باز هم به صورت تصادفی استفاده کنید
10. از همه مهم تر است و ...... باز هم خیلی ها از قلم میندازند !!
اینه که بعد از ساخت یک کد امنیتی خوب . چطور ازش استفاده کنیم .
کار رو با یک مثال جالب از یک کد امنیتی به ظاهر غیر قابل عبور شروع می کنم
ما اینجا یک کد امنیتی بسیار قوی داریم که در آدرس
http://site.com/capcha.jpg?c=DH3K45KG78HBH74I7YJHhghgU
که با استفاده از DH3K45KG78HBH74I7YJHhghgU یک کد امنیتی می سازه
عکس باز میشه . در داخل فرم هم همین عکس نشون داده میشه
به شکل زیر
کد HTML:
<form method="POST" action="">
<img src="http://site.com/capcha.jpg?c=DH3K45KG78HBH74I7YJHhghgU"/>
<input type="hidden" value="DH3K45KG78HBH74I7YJHhghgU" name="Imagecode"/>
<input type="text" name="UserCode"/>
<input type="submit"/>
</form>
در کد بالا کاربر کد امنیتی که در عکس میبینه رو در فیلد UserCode وارد می کنه .
و همون طور که میبینید در فیلد Imagecode هم از یک کد با الگوریتم بسیار پیچیده استفاده شده
( که بیلگیتس هم نمی تونه ازش سر در بیاره . و اگه ببینه سیکته می کنه اون وقت بی windows میشیم ) .
وقتی کاربر submit رو میزنه . 2 مقدار به سمت سرور میره . کد Imagecode یه شکل اولش در سرور بر می گرده
و با Imagecode مقایسه میشه . اگر برابر بود . یعنی شما آدم هستی و وارد میشی
حالا برای عبور از این کد بالا فقط لازمه شما همین فرم بالا رو یک بار با دست پر کنی بعد تا 9999999E بار
هم تکرارش کنی کار می کنه .
خوب برای جلوگیری فقط لازمه از کدی استفاده کنیم که فقط یک بار قابل استفاده باشه . که دیگه به خلاقیت شما
بستگی داره
3 را همین الان به نظرم می رسه
1. استفاده از زمان
2. استفاده از session
3. بگردین یه الگوریتم خوب پیدا کنید !!!
و این نکته رو هم بگم که از هر الگوریتمی استفاده می کنید لازمه خاص و پیچیده باشه
من دیدم بعضی ها میاد کد ها رو میچینن کنار هم مثلا با تاریخ به این طورت 3da3s_12 بعد base64
میکنند باید این نکته رو به دوستان بگم که هکر ها و کرکر ها هیمشه فکر اینجا رو می کنند در ضمن
امکانات هم دارند برای مثال برنامه ای که . کد گذاری های معروف قابل برگشت رو نه به یک صورت بلکه
10000 صورت تست می کنند
از دوستان خواهش دارم اگر الگوریتم های خوبی سراغ دارند
بگذارند
در این آدرس هم یک اسکریپت capcha با قابلیت تنظیم بسیار خوب براس استفاده هست
Visual and Audio PHP CAPTCHA Generation Class - Ed Eliot (http://www.ejeliot.com/pages/2) که خیلی خوبه http://pnu-club.com/images/smilies/wink.gif