PDA

View Full Version : مشکل اساسی: ارسال دستی کپچا در کنار ارسال مقادیر فیلد ها



mhabat
پنج شنبه 04 مهر 1392, 17:11 عصر
با سلام.

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

من تمام مقادیر رو درست ارسال می کنم (از طریق curl)

ولی مشکل اینجاست که این فرم کپچا داره.

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

میتونم جدا گانه تصویرامنیتی رو نمایش بدم و از طریق text box ارسال کنم

ولی دیگه اون تصویری که من کدشو ارسالکردم با اونی که curl باز کرده یکی نیست.

AliRezaPro
جمعه 05 مهر 1392, 21:17 عصر
من نمیدونم درست متوجه شدم یا خیر . ولی شما دو سایت دارید که میخواهید بعد از اعتبار سنجی فرم اونو برای یک سایت دیگر ارسال کنید . شما اعتبار سنجی کپچا رو در همان فرم انجام بدید و بعد از درست بدون مقادریر فیلد ها را ارسال کنید , نیاز ارسال کد های کپچا به سایت مقصد چیست ؟

mhabat
جمعه 05 مهر 1392, 21:30 عصر
سلام.ممنون بابت پاسختون.
اشتباه متوجه شدین.
ببیند یک سایت بیشتر نیست.
شما فکر کن می خوام فرم ثبت نام یک سایت رو با زبان php پر کنی! چی کار می کنی؟
خوب احتمالا با curl مقادیر فیل هارو ارسال می کنی بعدش برای captcha چی کار می کنی؟ اگه بخوای اون رو به صورت دستی ارسال کنی؟

AliRezaPro
جمعه 05 مهر 1392, 21:43 عصر
اینکار بصورت اتوماتیک است ؟ خوب اگر بصورت اتوماتیک باشد به چه صورت می خواهید مقدار کپچا رو حدس بزنید ؟ کپچا برا ی همین کارهاست . یا اینکه در همان درخواست curl عکس کپچا را دانلود کنید و در صفحه ی خودتان نمایش دهید و سپس اطلاعات مربوط را بفرستید.چه نیازی به همچین کاری است ؟

shahriyar3
جمعه 05 مهر 1392, 21:54 عصر
کد کپچا چونکه با هر بار درخواست تغییر میکنه باید با یکبار درخواست از سایت مقصد کل اطلاعات و ارسال کنی
کل سورس صفحه رو میگیری بعد قسمت کپچا رو نمایش میدی به یوزر و بقیه قسمت ها رو با اطلاعاتی که از قبل داشتی پر میکنی ولی المنت های فرم به هیدن تغییر میدی
وقتی کاربر روی سابمیت کلیک میکنه انگار واقعا از توی سایت مقصد فرم پر کرده و سابمیت کرده پس اکشن فرم و هم باید همون چیزی بزاری که اونجا هست.

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

mhabat
جمعه 05 مهر 1392, 21:58 عصر
آره نمیشه. چون وقتی با curl مقادیر رو ارسال می کنی خودش دکمه ارسال رو میزنه و دیگه نمیشه گپچا رو زد.
ولی یه چیز دیگه. وقتی دکمه ثبت نام رو میزنی اگه مقادیر کامل نباشه مثلا به دلیل خالی بود فیلد کپچا همون صفحه باقی می مونه
یعنی مقادیرش تغیر نمی کنه و منتظر تا فیلد کپچا رو وارد کنی.
حالا همین صفحه که باقی مونده و مقادیر فیلد هام وجود دارند و فقط فیلد کپچا خالی هست رو سورسشو بدست آوردم.
حالا میشه به شکلی این سورس رو با html باز کرد و فیلد کپچا رو پر کرد و اکانت رو ثبت کرد؟

mhabat
جمعه 05 مهر 1392, 22:04 عصر
شرمنده آقا شهریار دقیقا مشکل من رو گفتین .
اتفاقا همین کار شمارو انجام دادم ولی به hidden تبدیل نمی کردم فیلد هارو!
آقا شهریار داخل <form اصلا از action استفاده نکرده. با این وجود مشکلی نیست؟ فقط hidden کنم فیلد هارو!
بالا سورس رو قرار دادم.
اگر شد در مورد دور زدن الگوریتم هم توضیح بدین.

shahriyar3
جمعه 05 مهر 1392, 22:21 عصر
اکشن داره فرمش . ctrl f بگیر کلمه action و سرچ کن پیداش میکنی روبات هائی که برای بلاگفا مینویسن همینجوری کار میکنه ببین مثلا شما یه درخواست میفرستی به صفحه ای که فرم داخلش هست . اصلا درخواست هم نه با file_get_content میگیری محتواشو بعد سورس کد و میخونی قسمتی که مربوط به فرمش هست و ویرایش میکنی value اگر داشت مقدارش و عوض میکنی اگر نداشت اضافه میکنی type و هم میزاری hiiden که کاربر کل فرم و نبینه فقط کد کپچا رو دست نمیزنی بهش الان وقتی فرم جلوی کاربر باز میشه کل فیلد ها hidden هستند و کد کپچا رو کاربر باید پر کنه و کلید سابمیت و بزنه که بره صفحه بعد همین . به همین سادگی که توضیح دادم نیست!

mhabat
جمعه 05 مهر 1392, 22:54 عصر
همون اولین پست رو هم که گفتین گرفتم چی میگین.
الان تغییرات رو انجام دادم. ولی باز رفرش میشه!
فایل رو ضمیمه کردم.
اگه شد در مورد اون الگوریتم هم توضیح بدین.

shahriyar3
جمعه 05 مهر 1392, 22:54 عصر
الگوریتمش خیلی پیچیده هست . درصد خطا داره ولی بیشتر مواقع جواب میده.
در مورد دور زدن کد کپچا هم اون روشی که من استفاده میکردم این بود مثلا کپچا هائی مثل این (http://www.parsilog.com/wp-content/plugins/si-captcha-for-wordpress/captcha/securimage_show.php?si_form_id=com&prefix=TFHTGfkrENsgvFBX)
بک گراند عکس حذف میشد بعد چیزی که میمونه معمولا حروف بودند. اگر حروف خوانا باشه که هیچی اگر نه باید مقایسه میشد و از روی درصد شباهت حدس زده میشد که اون حرف چی هست.
دنبال php ocr بگردی فکر کنم کارت و راه بندازه ولی اگر توی گوگل بگردی شاید الگوریتم های جدید تری هم باشه.

shahriyar3
جمعه 05 مهر 1392, 23:06 عصر
ارسال مقادیر فرم ایجکسی انجام میشه باید آدرسی که مقادیر بهش پاس میشه رو هم عوض کنی یا آدرس کامل بهش بدی

mhabat
جمعه 05 مهر 1392, 23:13 عصر
به جز

<input type="hidden" name="action" value="join/member_stand_register_action" />
دیگه هیچ آدرسی نیست که من بخوام عوض کنم.
این رو هم که کامل می زارم بازم مشکل همونه!

shahriyar3
جمعه 05 مهر 1392, 23:18 عصر
ببین فایر باگ و روشن کن از قسمت نت چک کن ببین بعد از زدن سابمیت به چه آدرسی مقادیر داره پاس میشه اون آدرس و درست کن

mhabat
جمعه 05 مهر 1392, 23:40 عصر
تشکر مشکل رو حل کردین.

shahriyar3
جمعه 05 مهر 1392, 23:42 عصر
خواهش .
ایشالا از حالت آمپاسی در اومده باشی :چشمک: