0 امتیاز

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

یوزر و پسورد سایت هم هست( منظورم اینکه قصد کرک و اینها رو ندارم.)

            try
            {
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36";
                request.CookieContainer = container;


               
                using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                {
                    url = response.ResponseUri.AbsoluteUri;
                }
            }

اون container هم در کد، در واقع یه CookieGetter هست ک خودس یه تابع داره. نحوه کارش هم این هست که از طریق webbrower یه بار باهاش وارد سایت prefile میشم و لاگین می کنم ک بتونم کوکیش رو ذحیره کنم.

بعدم ک از طریق کد بالا url اولیه رو میدم تا لینک مستقیم رو بهم ببده.

از این کد برای سایت های مشابه استفاده کردم.  ولی این سایت چون cloud flare داره نمیشه و در خط using دیگه ارور 503 بهم میده. با نرم افزار fiddler که چک کردم دیدم این خطا رو میده

    <h1><span data-translate="checking_browser">Checking your browser before accessing</span> prefiles.com.</h1>
    
    <p data-translate="process_is_automatic">This process is automatic. Your browser will redirect to your requested content shortly.</p>
    <p data-translate="allow_5_secs">Please allow up to 5 seconds&hellip;</p>

چطوری می تونم از شر این cloud flare راحت بشم.

تو حالت عادی وقتی با کروم وارد سایت میشم. و بعد روی هر لینکی از prefiles کلیک می کنم. میری واسه دانلود با IDM (یعنی لینک مستقیم رو میده بهم)

ولی تو برنامه با اینکه user agent هم براش تعریف کردم، متوجه میشه ربات یا برنامه ست و این کلاد فلر بهم گیر میده!

بسته شده

2 پاسخ

+2 امتیاز
 
بهترین پاسخ

با سلام.

سیستم کلود سایت به این صورت کار میکنه که اگر برای اولین بار سایت رو باز کنید(هیچ کوکی ای در سیستم ذخیره نشده باشه) به مدت 5 ثانیه از کاربر وقت میگیره تا تاییدیه در کلود ذخیره بشه و کوکی ای که ایجاد شده هم تایید بشه
وقتی دفعات بعد وارد سایت میشید سیستم کلود از آی پی + کوکی ها شمارو تشخیص میده

همونطور که خودتون آنالیز کردید با ارور 504 این متن رو میبینید:

<p data-translate="allow_5_secs">Please allow up to 5 seconds&hellip;</p>

برای رد کردن این کلود خیلی ساده میتونید بعد از ارسال درخواست به سایت کوکی هارو برداشت کنید و با فاصله 5-6 ثانیه ای درخواست جدید رو با کوکی های قبلی ارسال کنید

من پیشنهاد میکنم از کتابخانه MSC برای این کار استفاده کنید: https://github.com/Rextor/MSC

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

https://github.com/Rextor/MSCLeecher

اما در مورد این کلود:

این کلود با چلنجی که داره جلوی شمارو میگیره و نمیزاره با یک ریکوست عادی به سایت اصلی برسید

این چلنج تحت javascript طراحی شده و شما باید مقادیر لازم رو emulate کنید تا به دست بیارید

بعد از حل کردن این چلنج کافیه AllowAutoRedirect رو فعال کنید و به سایت اصلی منتقل بشید

من بعد از 2 ساعت آنالیز موفق به انجام این کار شدم که میتونید مشاهده کنید:

 

 

سلام ممنون از توضیحات کاملتون.

اکر میشد این کد های بخش اخر رو هم ارسال کنید ممنون میشدم.

این بخشی ک خودتون تست زدید رو سایت prefile
توسط (192 امتیاز) 9
0 امتیاز

سلام

موضوع کلودفلر اینه که اطلاعات از داخل اون رد میشه  و اینکه ای پی سایت prefiles الان ای پی خودش نیست یعنی توسط فلر مخفی شده برای جلوگیری از حملا دیداس

فرض کنیم شما با استفاده از inspect  المنت های prefiles میخایید وارد سایت بشید اما در حقیقت اونا نمایشی هستن

یه کلاسی بود بنام --HttpWebRequest.AllowAutoRedirect--- ببین میتونی باهاش کارکنی

فک کنم باید از api کلودفلر استفاده کنید و اینکه این کدهارو هم اضافه کنید

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

 

 

ممنون از وقتی ک گذاشتید.

ولی توضیحاتتون خیلی پراکنده بود. تهش هیچی نفهمیدم.

میدونم سیستم کلود چیه. میخوام ببینم چطور ازش بگذرم. و کدش چیه
توسط (192 امتیاز) 9
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,921 کاربر

دسته بندی ها

...