PDA

View Full Version : سوال: ساختن کد کپچا(captcha)؟



salehi-ali
جمعه 26 اسفند 1390, 11:56 صبح
سلام دوستان
من در صفحه ارتباط با ما سایتم کد کپچا نیاز دارم.
طریقه درست کردن و رفرش کردن ان را با سورس کد توضیح می دهید.تشکر

hightech
جمعه 26 اسفند 1390, 12:21 عصر
از این (http://www.google.com/recaptcha/whyrecaptcha) استفاده کنید خیال خودتون رو هم راحت کنید

khanlo.javid
جمعه 26 اسفند 1390, 12:27 عصر
دوستان اگه کسی میتونه کامل توضیح بده ممنون میشم.

hightech
جمعه 26 اسفند 1390, 18:54 عصر
بعد از اینکه توی سایت ثبت نام کردید و دامین خودتون رو ثبت کردید، به شما دو تا کلید میده: عمومی(private) و خصوصی(public)
بعد از اون توی html این کد رو قرار بدید:

<form method="post" action="index.php">
<?php
require_once('recaptchalib.php');
$publickey = "your_public_key"; // کلید عمومی
echo recaptcha_get_html($publickey);
?>
<input type="submit" />
</form>

این هم سمت سرور که فرم ارسال میشه:

require_once('recaptchalib.php');
$privatekey = "your_private_key";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);

if (!$resp->is_valid) {
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
"(reCAPTCHA error: " . $resp->error . ")");
} else {
// OK
}

salehi-ali
جمعه 26 اسفند 1390, 21:23 عصر
سلام دوست من ،نمیخواهم کد آماده استفاده کنم چرا که هیچ فایده ای نداره و چیزی یاد نمی گیرم. همش کپی پیست که نمیشه. اخه یک نفری امده این رو نوشته که ما استفاده میکنیم.آموزش اش اگه هست لینک آموزش اش را بفرستید.با تشکر.

parselearn
شنبه 27 اسفند 1390, 10:03 صبح
نمونه کد (http://barnamenevis.org/showthread.php?161642-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%DA%A9%D8%AF-%D8%B3%D8%A7%D8%AE%D8%AA-captcha-%D8%AF%D8%B1-php&highlight=%D8%B3%D8%A7%D8%AE%D8%AA+%DA%A9%D8%AF+%D A%A9%D9%BE%DA%86%D8%A7+%2Bphp)
{کوتاهه دیگه!}

salehi-ali
شنبه 27 اسفند 1390, 20:48 عصر
سلام میشه درباره این خط کد راهنمایی کنی که چی کار کنم.
header('Content-Type:image/png'); یا فایل ضمینه اش رو بزارید. و توضیح بیشتری بدید

<?php
session_start();
$allstr="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO PQRSTUVWXYZ1234567890";
for($i=1;$i<=5;$i++)
{
$rndCode .=$allstr[rand(0,61)];
}
$_SESSION['captcha'] = $rndCode;
$img = imagecreate(70,35);
imagecolorallocate($img,170,225,250);

for($i=0;$i<=4;$i++)
{
$textColor = imagecolorallocate($img,rand(0,150),rand(0,150),ra nd(0,100));
imagestring($img,5,12+10*$i,10,$rndCode[$i],$textColor);
}

header('Content-Type:image/png');
imagepng($img);
imagedestroy($img);

?>.تشکر

Abalfazl
شنبه 27 اسفند 1390, 20:58 عصر
http://estakhrian.blogfa.com/cat-1.aspx

geotechnic
پنج شنبه 15 تیر 1391, 16:46 عصر
سلام

من ار برنامه نویسی سر رشته ای ندارم. یک فرم تماس با ما ایجاد کردم با استفاده از کدهای آماده

ولی مشکلی که داره اینه که اسپمرها ایمیل می دن، می خواستم بدونم اگر امکانش هست یک کد آماده

برای ساخت سوال امنیتی فارسی در اختیارم بذارید که برای این فرم استفاده کنم.

ممنون میشم اگر در این خصوص راهنمایی کنید:

آدرس فرم تماس با ما (http://www.irangeotechnic.com/contact/)


http://www.mediafire.com/?cv6ktgcxxt33u8t

facefeed
پنج شنبه 15 تیر 1391, 16:52 عصر
مطمئن ترین و بهترین همون کپچا گوگل هستش
قابلیت سفارشی سازی قالب هم داره :)

geotechnic
پنج شنبه 15 تیر 1391, 17:03 عصر
سلام

من ار برنامه نویسی سر رشته ای ندارم. یک فرم تماس با ما ایجاد کردم با استفاده از کدهای آماده

ولی مشکلی که داره اینه که اسپمرها ایمیل می دن، می خواستم بدونم اگر امکانش هست یک کد آماده

برای ساخت سوال امنیتی فارسی در اختیارم بذارید که برای این فرم استفاده کنم.

ممنون میشم اگر در این خصوص راهنمایی کنید:

آدرس فرم تماس با ما (http://www.irangeotechnic.com/contact/)


http://www.mediafire.com/?cv6ktgcxxt33u8t


مطمئن ترین و بهترین همون کپچا گوگل هستش
قابلیت سفارشی سازی قالب هم داره :)


من روی انجمنم هم سوال امنیتی فارسی نصب هست و مشکلی هم تا حالا نداشته.

http://civ.site40.net/photos/6ba9f2a69765.jpg

ترجیح می دم از سوال امنیتی فارسی استفاده کنم تا کپتچیا ( بعضی وقت ها باید با این کپتچ ها کشتی گرفت تا بشه خوندش)

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

eshpilen
پنج شنبه 15 تیر 1391, 20:11 عصر
یه جایی نوشته بود خودتون کپچا طراحی نکنید مگر اینکه در پردازش تصویر تخصص داشته باشید.
این کپچاهایی که همه جا کد و آموزشش ریخته خیلی افراد میتونن درست کنن، ولی حقیقتش اینه که هیچکدام بقدر کافی حرفه ای و امن نیستن.
حالا اگر یکی ادعا میکنه کپچاش تاحالا کرک نشده دلیل نمیشه. چون این کاره های حرفه ای طبیعتا دنبال مواردی میرن که از نظرشون اهمیت داشته باشن (معمولا سایتهای معروف و کاربردهای ارزشمند). دیگه بیکار نیستن هر سایت زپرتی و فردی هر روز یک کپچا میسازه برن روش کار کنن و کرکش کنن.

مثلا کپچاهای سایتهای معروف و کلا کپچاهای حرفه ای که تاحالا کرک نشدن یا کرک اونها از همه سخت تر بوده رو اگر نگاه کنید، ظاهرشون خیلی ساده بنظر میرسه. مثلا نوشته های سیاه روی زمینهء سفید هستن و این همه جنگول منگول بازی که توی خیلی از کپچاهای دیگه میبینید توشون نیست. منظورم از جنگول منگول بازی همین رنگ وارنگ بودن و خال خال و راه راه و غیره هست که خیلی از کپچاها دارن.
اونی که تخصص پردازش تصویر داره میدونه باید دقیقا روی چه چیزی کار کنه و کدام ویژگی هست که تشخیص درش برای انسان بقدر کافی ساده است اما برای ماشین خیلی سخت تره.
حتی خیلی وقتا اینهمه جنگولک که روی کپچاها پیاده میکنن یا اصلا اثری نداره (یا اثر ناچیزی داره) یا حتی گاهی میتونه به کرک کمک کنه.
یه مثال میزنم. مثلا دیدید که خیلی از خطها و کلا پارازیت که در کپچاها هست رنگشون متفاوت از زمینه و نوشته هاست. یا بعضی وقتا رنگ رندوم دارن.
خب هدف از خط و پارازیت چیه؟ اینه که تشخیص جایی که جزیی از شکل یک کاراکتره دشوار بشه. وقتی رنگ پارازیت از زمینه و نوشته متفاوت باشه، الگوریتم میتونه براحتی تشخیص بده که کجا پارازیت افتاده و میتونه اون بخش رو از الگوریتم تشخیص مستثنا کنه یا طوری بحساب بیاره که کمتر گمراه بشه، ولی وقتی رنگ پارازیت با رنگ نوشته یا زمینه یکسان باشه، میتونه الگوریتم تشخیص رو گمراه کنه چون الگوریتم براحتی نمیتونه تشخیص بده که اون بخش جزیی از شکل یک کاراکتر است یا پارازیت.

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

البته من خودم دوست ندارم برنامم به سرویسهای آنلاین دیگران وابسته باشه، برای همین از مال گوگل استفاده نکردم.
اینم بگم که شاید بیش از 10 کپچای مختلف رو بررسی کردم، اما حتی یدونه پیدا نکردم که بنظرم بقدر کافی حرفه ای و امن باشن.
کد بخوای زیاد ریخته در همه زمینه ای در همه جا. اما بخصوص در زمینهء امنیت، میشه گفت تنها 1% از این کدها و آموزشها بقدر کافی حرفه ای و امن هستن.

کپچا یه چیزی تزیینی نیست.
یه چیزی هم نیست که هرکس با دوتا نوشته و دوتا پارازیت و خط و خال و مستطیل و مربع و دایره و بیضی و رنگ رندوم انداختن درست کنه.
الگوریتم های پردازش تصویر و OCR خیلی پیشرفت کردن و واقعا قوی هستن.
ضمنا لازم نیست ضریب خطای این برنامه ها صفر باشه (100% درست تشخیص بدن). بلکه یک درصد خاصی داره که اگر ضریب موفقیت اونا از اون بیشتر باشه، کپچا کرک شده محسوب میشه. البته دقیقا یادم نیست چقدر، ولی خیلی کمتر از 50% بود.