PDA

View Full Version : وبگردی غیر حضوری



میلاد قاضی پور
جمعه 12 شهریور 1389, 03:49 صبح
سلام . دقیقا نمیدونم اسمش رو چی بذارم . بذارید توضیح بدم .
من میخوام برنامه ای بنویسم که بعضی از کارهای معمول و روزانه ی من رو در سایتها به صورت خود کار انجام بده .
میخوام به کنترلهای موجود در صفحات هم دسترسی داشته باشم . چطور میشه همچین کاری انجام داد .
مثلا برنامه ای که فایل متنی من رو در زمان خاصی بخونه و در وبلاگم ثبت کنه . برای اینکار لازمه
برنامه بتونه در سایت لاگین کنه . به قسمت درج مطلب جدید بره .
بعد از خوندن متن اون رو در تکس باکس مربوط به مطالب جدید در وبلاگ پیست کنه . و باتون ثبت مطلب در وبلاگ که روی سایت هست رو اجرا کنه . میشه چنین چیزی ؟

milade
جمعه 12 شهریور 1389, 06:17 صبح
البته اینی که شما گفتید رو که نه !
شما هیچ جوری دسترسی به TextBox و ... نداری .
باید ببینی لاگین چه طور انجام میشه و اون روش شبیه سازی کنی .
برا مثال توی همین سایت در صفحه Login وقتی شما فرم رو پر میکنی چه اتفاقی میافته ؟!

بله ! از طریق یه فرم Post میشه به سرور...
شما باید این پست کردن رو شبیه سازی کنی ...
یعنی مقادیر رو به فرمت پاس بدی و ارسالش کنی به سرور ...
البته مشکلاتی هم هست ... از جمله مثلاً یه تصویر امنیتی یا یه سری کارهای امنیتی که برا جلویگیری از Auto Submit انجام میدهند سایتها ...

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

میلاد قاضی پور
جمعه 12 شهریور 1389, 16:08 عصر
ببین آقا میلاد . من یه بوکمارکلت گیر آوردم که وقتی اجراش میکردم تکسباکسهای صفحات لاگین رو میخوند و رموزی که به صورت بالت نشون داده میشد رو به حروف تبدیل میکرد . یعنی میشه به تکسباکسها دسترسی داشت و خوندشون . نوشتنش رو هم بعید نمیدونم . مثال خاصی تو ذهنم نیست .

aminghaderi
جمعه 12 شهریور 1389, 23:37 عصر
همان طوری که اقا میلاد توضیح دادند یاید اطلاعات (یوزر و پسورد لوگین + ...) رو به سرور پاس بدی ؟!
اما مشکل اینجاست که این کار ، کار ساده ای نیست ؟! شاید در گذشته که ساخت سایت ها روتین بود ، می شد این کار رو کرد ، ولی الان خیلی به مشکل می خوردید؟!
شما الاوه بر کد انسان نما و چیزهایی از این قبیل که سر راه دارید ، بعضی اوقات سایت ها اینجین هایی متفاوت و شخصی برای لاگین اعضا طراحی می کنند ، مثلا شما باید این طور وارد ساایت بشی:
Amin$12345678$codTransfer$siteurl
که amin کلمه کاربری.
12345678 کد عبور.
codtransfer یه کد ارتباطی که مشخص می کنه از سایت خودش لوگین داره صورت می گیره و...
siteurl هم اسم سایت.
و... کد انسان نما و...
این ها مثال بود شاید نمونش رو پیدا نکنید ، ولی منظوراینه که پارامتر ها برای سایت ها مختلف (بسته به تکنولوژِ و سیستم امنیتی و...) متفاوت هست.

موفق باشی.

milade
شنبه 13 شهریور 1389, 06:21 صبح
من یه بوکمارکلت گیر آوردم که وقتی اجراش میکردم تکسباکسهای صفحات لاگین رو میخوند و رموزی که به صورت بالت نشون داده میشد رو به حروف تبدیل میکرد . یعنی میشه به تکسباکسها دسترسی داشت و خوندشون . نوشتنش رو هم بعید نمیدونم .

اونی که شما صحبتش رو میکنید که 100% بعید نیست و خاصیت این برنامه ها این هست .
این جور برنامه ها با یه سری تکست باکس Real سر و کار دارند و خب به راحتی میشه اونها رو خوندش ...

اما اونی که من منظورم هست ...
بگزارید کاملاً شفاف بگم ( البته جزئی ) ..
ما اکثراً 2 تا متد داریم برا ارسال مقادیر : Get , Post
خب در هر دو وقتی مقادیر رو میفرستیم یه Key داریم یه Value .
مثلاً در یه صفحه لاگین ، Key هامون یوزر و پسورد و مقادیرش رو که کاربر میده ...
ما میتونیم این رو با Httpwebreqest و HttpWebResponse پاس بدیم و مقدرش رو دریافت کنیم .
این کل روش بود !
تمامی Browser ها هم بر همین مبنا کار میکنند ...
اما امنیت سایت یه چیز دیگست .
برا مثال من یکی از سایتهام طوری بودش که به هیچ عنوان هیچ دستوری به جز دستوراتی که با یه مبنا خاص بودند پردازش نمیشدند .
و اون بسته به زیرکی شما هست که این روشها رو بتونید دور بزنید ،تصویرهای امنیتی رو بشکونید و ...

اما در کل تئوری کار این بودش و بنده از بیان جزئیات این کار با توجه به بحث هایی که متاسفانه داریم میبینیم حملات و اختلالاتی که ناشی از ارسالهای بی مورد به سایتها و ... پرهیز میکنم و به خودتون محول میکنم .

پاینده باشید .

ASPX
شنبه 13 شهریور 1389, 09:49 صبح
اگر سايت مال خودت باشه ميتوني از Scheduler ها استفاده كني

میلاد قاضی پور
شنبه 13 شهریور 1389, 18:18 عصر
قبول دارم برای بروزرسانی سایتهایی که کپچا توشون وجود داره کار سخت میشه . اما تصور کنید به برنامه من یوزر و پسم داده بشه. اون برنامه اسکریپت رو در مرورگرم اجرا کنه . مراحل اجرای اسکریپت :
1- اجرای مرورگر
2-یو ار ال سایت مربوطه و انجام رویداد اینتر
3- پس از بارگذاری سایت پر کردن فیلدها با مقادیر لازم
4- انجام رویداد اینتر
5- پس از بارگذاری صفحه مدیریت شناسایی لینکهای مورد نظر و ورود به بخش
6- درج مطالب در فیلد مربوطه
7- انتقال فوکوس به کنترل ثبت اطلاعات
8- انجام رویداد اینتر

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

aminghaderi
شنبه 13 شهریور 1389, 18:38 عصر
گزینه 9 رو فراموش کردی؟!

9- پایان!

:لبخند::لبخند::لبخند:

milade
شنبه 13 شهریور 1389, 19:09 عصر
1- اجرای مرورگر
فراخوانی Httpwebrequest

2-یو ار ال سایت مربوطه و انجام رویداد اینتر

3- پس از بارگذاری سایت پر کردن فیلدها با مقادیر لازم

4- انجام رویداد اینتر

5- پس از بارگذاری صفحه مدیریت شناسایی لینکهای مورد نظر و ورود به بخش
پاس یک فرم به ادرس صفحه لاگین حاوی یوزر و پسورد .


6- درج مطالب در فیلد مربوطه

7- انتقال فوکوس به کنترل ثبت اطلاعات

8- انجام رویداد اینتر

9- پایان!
باز هم ایجاد یک Httpwebrequest و ایجاد فرم Post برا ارسال اطلاعات پست جدید و ارسال اون .
گزینه 9 هم پایان دادن به Httpwebrequest و Dispose تمامی متدهای باز ...

چیز خاصی نیست . پیشنهاد میکنم یه کم راجع بهش تحقیق کنید .