اخطار! : Capcha (کدامنیتی) قابل عبور است!!

mst_ab

New Member
به نظر من فلش هم فکر جالبیه .ولی از طریق اون فایل xml میتونن پی به کد ببرن .

ولی من هنوز واسه جداسازی فریم های فایل gif قانع نشدم .
من خیلی با محتوای فلش آشنا نیستم ، نمی دونم خوب هست یا نه ، ولی ظاهراً بهتر از عکس هست ، میشه رندوم توی فلش تغییر داد؟
در مورد فایل های gif می تونی اینجا رو مطالعه کنی:
editing gif frame in php:
http://hyvatti.iki.fi/~jaakko/sw/
البته قسمت phpش رو مطالعه کنین. بنده اصلاً در زمینه ی گیف کار نکردم ، اطلاعات هم ندارم ، ولی فکر کی کنم همون طور که میشه یه فایل گیف با پی اچ پی بسازی ؛ می تونی ویرایشش هم بکنی ، با تحت ویندوز که مطمئن هستم میشه ، خودم با وی بی نوشتم شاید با ASP.net بشه) در ضمن من خودم گیم میکر کارم ، یه گیم میکر توی گوگل سرچ کنید اولین تاپیک رو توی پی سی ورلد بنده زدم که در مورد گیم میکر هست، در زمینه ی بازی های دو بعدی روی گیف کار خیلی زیادی کردم ولی توی پی اچ پی بلد نیستم.
 
آخرین ویرایش:

Allahparast

Member
اره منم با فلش موافق هستم میشه نتیجه رو ریخت توی XML به نظر من عالیه سعی می کنم یکی بسازم
البته اینم بگم اگه آدرس فایل ایکس ام ال لو بره دیگه نمیشه کاریش کرد :green:
هکر ها هاست ها رو اسکن می کنند و فایل های توش رو در میارن ، نمیشه زیاد اطمینان کرد به این روش !
 

parsiteam

Member
الان که فکر میکنم فلش رو مخالفم .

1 - فلش پلیر حتما باید نصب باشه .

2 - لودش طول میکشه .

3 - اگر خوب بود قبل از ما حتما گوگوووولی و یاهو ازش استفاده می کردن .




ولی من هنوز باز با لینک http://hyvatti.iki.fi/~jaakko/sw/ قانع نشدم . یعنی راستش این لینک چیز خواصی رو شرح نداده که مربوط به بازکردن فریم ها باشه .
 

mst_ab

New Member
ولی من هنوز باز با لینک قانع نشدم . یعنی راستش این لینک چیز خواصی رو شرح نداده که مربوط به بازکردن فریم ها باشه .
من نمی دونم چه مسئله ای هست که قانع نشدید ، اصلاً ساده ترین راه ! قبول دارید که تحت ویندوز میشه فریم های گیف رو جدا کرد؟ ( که البته خودم مطمئن هستم!) خب حالا کافیه یه برنامه بنویسی که فایل رو تحت ویندوز ( یا لینوکس ) فریم هاشو جدا کنه و تکست رو بفرسته برای سرور ، به همین راحتی! البته در اجرا کمی مشکل خواهد داشت ، ولی بعد از ساخت و اجرا خیلی فرقی با بقیه نداره( فقط از لحاظ زمانی یکم فرق می کنه) ، کسی بخواد باز بکنه می تونه ، من یک نمونه کپچا دیدم که ظاهراً میگن باز نشده تا حالا ، اونم مال گوگل هست ( البته به تازگی میگن یک برنامه نویس روسی تونسته بازش کنه و 1 ثبت نام تو گوگل انجام بده!)
 

my friend

Member
تو پست اول تاپیک چند مورد به نظراشتباه اومد که اینجا ذکر میکنم:


2.از تمامی حروف و اعداد استفاده شود (اگر از حروف فارسی هم استفاده کنید که بسیار عالی می شود !!)
روی همه ی سیستم ها صفحه کلید فارسی نصب نیست، ضمن اینکه همه مرورگرها جاوااسکریپت رو در حالت فعال ندارند و ممکنه مشکلی پیش بیاد... 62 حرف کوچک و بزرگ انگلیسی و عدد داریم، یعنی به تعداد 916,132,832 استرینگ متفاوت با طول 5 حرف میشه ساخت که به نظر کافی میرسه!!


4. از رنگ های تصادفی برای هر کدام از کارکتر ها و یا خط پشت آنها استفاده کنید
پیشنهاد من استفاده از یک رنگ خاص هست... در ادامه توضیح میدم:

5. محدوده رنگ ها را کوچک نکنید (برای مثال بین قرمز و قرمز روشن ) چون هیچ تاثیری نداره (قابل کرک هست)
استفاده از رنگ های مختلف برای خطوط مورب متغیر و حروف و ... خواندن کدها رو آسونتر میکنه. یادمه توی یه سایت خارجی چند خط کد با همین PHP & GD خودمون گذاشته بودند که با اجراش، رنگ ها رو حذف میکرد و حروف رو بر میگردوند. پیشنهاد من اینه که فقط با یک رنگ همه چیز رو توی تصویر قرار بدید.

8.از پسوند های jpg و bmp استفاده کنید زیرا تعداد رنگ های آنها بیشتر است (برای مثال شما در یک عکس jpg
میبینی که یک قسمتی سیاه رنگ هست . وقتی در photoshop روش زوم می کنی میبینی همون سیاه از 10 تا
رنگ تو رنج سیاه ساخته شده . حالا همون عکس رو به gif تبدیل میکنی و میبینی که همه اون قسمت تک رنگ سیاه شده !! )

با حذف پیکسل های رنگی، همه خونه های رنگی حذف میشه و حروف تک رنگ نمایش داده میشه. بنابراین، همه این کارها بیفایده است.


پیشنهاد میکنم همه خطوط، پیکسلهای تصادفی و حروف و ... به صورت تک رنگ (مثل قرمز، مشکی و هر چیز دیگه، فرقی نمیکنه)، طول خطوط، شیب و کلفتی به صورت تصادفی به تعداد زیاد توی تصویر باشه. در آخر تصویر رو با کیفیت پایین (مثلا در jpeg با کیفیت 10% یا حتی پایینتر و به صورتی که قابل خواندن توسط انسان باشه) ذخیره کنید تا رنگ ها به هم بریزه و در صورت حذف پیکسل های غیر همرنگ، نتیجه باز هم مثل یک کپچا میمونه و خوندنش مشکله.
 

foranyone

Well-Known Member
روی همه ی سیستم ها صفحه کلید فارسی نصب نیست، ضمن اینکه همه مرورگرها جاوااسکریپت رو در حالت فعال ندارند و ممکنه مشکلی پیش بیاد... 62 حرف کوچک و بزرگ انگلیسی و عدد داریم، یعنی به تعداد 916,132,832 استرینگ متفاوت با طول 5 حرف میشه ساخت که به نظر کافی میرسه!!
من اعداد رو با فوت فارسی نشون میدم کاربر میتونه انگلیسی هم وارد کنه و مشکلی پیش نمیاد .

راستی این قضیه چه ربطی به جاوا اسکریپت داشت متوجه نشدم !:shock:

استفاده از اعداد فارسی به نظر من باعث میشه سایت های خارجی به سختی سر در بیارن چی نوشته شده !

در انتها من از این دستور استفاده میکنم تا فونت ها و رنگ ها ناخوانا شن :

PHP:
if(function_exists(imagefilter))
imagefilter($im, IMG_FILTER_SMOOTH,rand(4,20));
 

k2-4u

Well-Known Member
روی همه ی سیستم ها صفحه کلید فارسی نصب نیست، ضمن اینکه همه مرورگرها جاوااسکریپت رو در حالت فعال ندارند و ممکنه مشکلی پیش بیاد
بله قبول دارم
ولی
... 62 حرف کوچک و بزرگ انگلیسی و عدد داریم، یعنی به تعداد 916,132,832 استرینگ متفاوت با طول 5 حرف میشه ساخت که به نظر کافی میرسه!!
برای Crack کردن عکس ها از روش آزمون و خطا استفاده نمیشه

پس فقط عدد 62 رو در نظر بگیرین
چون برنامه میاد و 62 تا الگو رو روی عکس چک می کنه . حالا اگر
از اعداد و حروف فارسی استفاده بشه . دامنه اعداد و حروف بیشتر میشه
این روش . بیشتر برای معادله خوبه مثلا "سه به اضافه پانزده"

پیشنهاد من استفاده از یک رنگ خاص هست... در ادامه توضیح میدم:
این جمله رو به تنهای قبول ندارم . چون
اگر رنگ ها روی random باشند کار تشخیص رو کمی سخت تر می کنند

پیشنهاد من اینه که فقط با یک رنگ همه چیز رو توی تصویر قرار بدید.
بله . فکر خوبی است . به شرط اینکه با خط ها و اشکال پشت صفحه هم رنگ باشند
در غیر این صورت بی فایده است

5. محدوده رنگ ها را کوچک نکنید (برای مثال بین قرمز و قرمز روشن ) چون هیچ تاثیری نداره (قابل کرک هست)
یک مثال . برای این جمله میزنم
خب . رنگ ها رو با کدشون شناسایی می کنند

پس کد رنگ . قرمز سیر به , کد رنگ قرمز روشن نزدیک است

. کافیه یک برنامه بسازید که . هرچی رنگ در دامنه قرمز بود به . قرمز سیر یا آبی تبدیل کنه!!
تموم شد !

با حذف پیکسل های رنگی، همه خونه های رنگی حذف میشه و حروف تک رنگ نمایش داده میشه. بنابراین، همه این کارها بیفایده است.
شما خودتون گفتین (مثلا در jpeg با کیفیت 10% یا حتی پایینتر و به صورتی که قابل خواندن توسط انسان باشه)
اگر در gif یا png این کارو انجام بدین
اوضا کمی فرق می کنه!

پیشنهاد میکنم همه خطوط، پیکسلهای تصادفی و حروف و ... به صورت تک رنگ (مثل قرمز، مشکی و هر چیز دیگه، فرقی نمیکنه)، طول خطوط، شیب و کلفتی به صورت تصادفی به تعداد زیاد توی تصویر باشه. در آخر تصویر رو با کیفیت پایین (مثلا در jpeg با کیفیت 10% یا حتی پایینتر و به صورتی که قابل خواندن توسط انسان باشه) ذخیره کنید تا رنگ ها به هم بریزه و در صورت حذف پیکسل های غیر همرنگ، نتیجه باز هم مثل یک کپچا میمونه و خوندنش مشکله.
بله . روش بسیار عالی است
فقط . خطوط پشت . عکس رو باید هم رنگ حروف کنید

در کل باید بگم
که اگر . طرز کار این سیستم ها رو درک کنید
می توانید . با خلاقیت خودتون راه های جالبی رو بسازین
 

k2-4u

Well-Known Member
من اعداد رو با فوت فارسی نشون میدم کاربر میتونه انگلیسی هم وارد کنه و مشکلی پیش نمیاد .

راستی این قضیه چه ربطی به جاوا اسکریپت داشت متوجه نشدم !
بله با انجام این کار .
مشکل جاوا اسکریپ هم حل میشه
 

my friend

Member
راستی این قضیه چه ربطی به جاوا اسکریپت داشت متوجه نشدم !
برای کسی که صفحه کلید فارسی نداره، چطور باید حروف رو تایپ کنه؟
پس نیاز به ساخت صفحه کلید با js هست.
روش شما بد نیست، اما یه کسی که فارسی بلد نیست برای چی باید بیاد و اسپم کنه؟
ضمن اینکه روش شما تنها برای اعداد کارساز هست و برای حروف، مشکل صفحه کلید ممکنه بوجود بیاد. همینطور، تعداد کاراکتر ها 10 تا بیشتر نیست و این خیلی بده.

برای Crack کردن عکس ها از روش آزمون و خطا استفاده نمیشه

پس فقط عدد 62 رو در نظر بگیرین
چون برنامه میاد و 62 تا الگو رو روی عکس چک می کنه . حالا اگر
از اعداد و حروف فارسی استفاده بشه . دامنه اعداد و حروف بیشتر میشه
این روش . بیشتر برای معادله خوبه مثلا "سه به اضافه پانزده"
بله، اما اگه کیفیت تصویر بیاد پایین ، مثل اینه که کاراکترهای بیشتری داریم و این خیلی خوبه. مگه اینکه کیفیت تصویر بخواد دوباره مثل اولش بشه که این هم فکر کنم ناممکن باشه.


این جمله رو به تنهای قبول ندارم . چون
اگر رنگ ها روی random باشند کار تشخیص رو کمی سخت تر می کنند
اتفاقا راحت تر میشه. چون کپچاخوان(!) میاد و رنگ هایی که بیشتر از بقیه استفاده شده رو جدا میکنه.خب معلومه که حرف S پیکسل های بیشتری نسبت به یه خط راست داره... بنابر این، حرف S رنگش مشخص میشه و کافیه موقعیت پیکسل های با این رنگ مشخص بشه و دیگه کار تمومه!


بله . فکر خوبی است . به شرط اینکه با خط ها و اشکال پشت صفحه هم رنگ باشند
در غیر این صورت بی فایده است
خب، منظور من هم همین هست دیگه! :green:

شما خودتون گفتین (مثلا در jpeg با کیفیت 10% یا حتی پایینتر و به صورتی که قابل خواندن توسط انسان باشه)
اگر در gif یا png این کارو انجام بدین
اوضا کمی فرق می کنه!
منظورتون رو درست متوجه نشدم.
فشرده سازی lossy & loseless منظورتونه؟
خب، از jpeg استفاده کنیم... مگه چجوریه؟

در کل باید بگم
که اگر . طرز کار این سیستم ها رو درک کنید
می توانید . با خلاقیت خودتون راه های جالبی رو بسازین
100%


یه سوال دارم.
یاهو چجوری به کپچاهاش موج میده؟ یا همین ریکپچا؟
یعنی مثلا حرف S کج و معوج نشون داده میشه نه معمولی!
 

k2-4u

Well-Known Member
له، اما اگه کیفیت تصویر بیاد پایین ، مثل اینه که کاراکترهای بیشتری داریم و این خیلی خوبه. مگه اینکه کیفیت تصویر بخواد دوباره مثل اولش بشه که این هم فکر کنم ناممکن باشه.
در کل . کرک کردن عکس ها . امکان پذیره !!
ما می خوایم کاری کنیم که خیلی خیلی سخت بشه
---------
خب اگه کیفیت بیان پایین باز هم همون روش قابل استفاده است
یعنی تبدیل رنگ به نزدیک ترین رنگ در همون رده
-----
برای کرک کردن عکس های بی کیفیت . روش به این صورته که
مقدار زیادی effect رو دونه دونه روی یک عکس ثابت تست می کنند
تا در یکی به صورت شانسی نوشته ها مشخص بشه


اتفاقا راحت تر میشه. چون کپچاخوان(!) میاد و رنگ هایی که بیشتر از بقیه استفاده شده رو جدا میکنه.خب معلومه که حرف S پیکسل های بیشتری نسبت به یه خط راست داره... بنابر این، حرف S رنگش مشخص میشه و کافیه موقعیت پیکسل های با این رنگ مشخص بشه و دیگه کار تمومه!
خب بله در این روشی که شما . در نظر داری
ولی در حالت های دیگه . تغییر رنگ ها بهتر از . ثابت گذاشتن اوناست
----
مکان نداره یک خط منحنی به این راحی با یک حروف اشتباه گرفته بشه
اگر هم بشه درصد خطای اون برنامه رو نشون میده
مثلا ممکنه یکی از خط ها شانسی شبیه C باشه
مثلا اگر دقت کرده باشین
می گن فلان برنامه 70% کیچا ها رو تشخیص میده
یا ....

مگر اینکه خطوط پشت زمینه هم کارکتر باشه
که باز هم اگر . حروف خوب چرخش نداشته باشه
میشه فرقش رو تشخیص داد


یه سوال دارم.
یاهو چجوری به کپچاهاش موج میده؟ یا همین ریکپچا؟
یعنی مثلا حرف S کج و معوج نشون داده میشه نه معمولی!
این یک effect است
که یک آقای الگوریتمشو نوشته
که این الگوریتم مثلا ورودی های random داره

اگر شما class چندین effect خوب برای عکس پیدا کنید
می توانید .همین کارها رو انجام بدین (بهتر از کم کردن کیفیت است )

منظورتون رو درست متوجه نشدم.
فشرده سازی lossy & loseless منظورتونه؟
خب، از jpeg استفاده کنیم... مگه چجوریه؟
شما اگر کیفیت عکس رو پایین بیارین
دامنه رنگ هاش کمتر میشه
و شفاف تر میشه !! (البته در gif و png )
 

meysam-fathi

Active Member
فایل فونت tahoma رو کنار این فایل کپی کنید تا ارور نده
کد:
<?php
    session_start();

    class CAPTCHA
    {
        private $objImage;
        private $strQuestion;
        private $strAnswer;
        
        public function create_captcha()
        {
            $this->create_image();
            $this->generate_random_question();
            $this->write_question_on_image();
            $this->apply_filters();
            $this->show_image();
            $_SESSION['captcha'] = $this->strAnswer;
            imagedestroy($this->objImage);
        }
        
        private function create_image()
        {
            $this->objImage =  imagecreatetruecolor(150,80);
            $intColor = imagecolorallocate($this->objImage,rand(10,255),rand(10,255),rand(10,255));
            imagefill($this->objImage,100,40,$intColor);
        }

        private function generate_random_question()
        {
            $arrOperands = array('+','-','*');
            $arrOperandShows = array('+','-',chr(215));
            $intRandIndex = rand(0,count($arrOperands)-1);
            $strOperand = $arrOperands[$intRandIndex];
            $strOperandShow = $arrOperandShows[$intRandIndex];
            $intNum1 = rand(1,9);
            $intNum2 = rand(1,$intNum1);
            $this->strQuestion = "$intNum1 $strOperandShow $intNum2";
            $strEval = "\$intAnswer = $intNum1 $strOperand $intNum2;";
            eval($strEval);
            $this->strAnswer = $intAnswer;
        }
        
        private function write_question_on_image()
        {
            $intColor = imagecolorallocate($this->objImage,0,0,0);
            $intAngle = rand(-10,10);
            imagettftext($this->objImage,18,$intAngle,50,50,$intColor,'tahoma.ttf',$this->strQuestion);
        }
        
        private function apply_filters()
        {
            imagefilter($this->objImage,IMG_FILTER_GAUSSIAN_BLUR);
        }
        
        private function show_image()
        {
            header("Content-type: image/png");
            imagepng($this->objImage);
        }
    }

    $objCaptcha = new CAPTCHA();
    $objCaptcha->create_captcha();
?>
 
آخرین ویرایش:

k2-4u

Well-Known Member
حمید جان اون کد امنیتی فارسی که درست کردی ضمیمه می کنی لطفا ؟
 

tarhebartar

Member
دوستان نظرتون در مورد اینی که من نوشتم و ازش استفاده می کنم چیه :

کد:
http://robofa.com/captcha.php

ممنون :دی
 

جدیدترین ارسال ها

بالا