PDA

View Full Version : پر کردن فرم اینترنتی متعلق به سایت دیگر



sara_aryanfar
جمعه 26 خرداد 1391, 18:44 عصر
با سلام دوستان تصور کنید ما یک سایت داریم یوز وارد سایت شده و روی باتن ارسال پست کلیک کرده حالا براش یک صفحه باید باز بشه تا فرم مورد نظر رو که از سایت دیگر هست رو بیاره حالا سوال اینجاست اولا این ارسال باید طوری باشه که با ایپی خود کاربر باشه نه سرور سایت ما و سوال دوم اینه که ما چطوری نتیجه ارسال رو از اون صفجه که کاربر اونجا عمل ارسال رو انجام داده دریافت کنیم؟

aspmaker
جمعه 26 خرداد 1391, 18:53 عصر
اگر واضحتر بفرمایید بهتر میشه موضوعتون رو درک کرد.
این یعنی چی:

این ارسال باید طوری باشه که با ایپی خود کاربر باشه نه سرور سایت ما
وقتی می خواید کاربر رو از Scope کاریتون ببرید بیرون دیگه گرفتن اطلاعات که خیلی سخت میشه!!

sara_aryanfar
جمعه 26 خرداد 1391, 18:59 عصر
بله مشکل همینجاست که چون دفعات این ارسال زیاد خواهد بود در صورتی که کاربر در مرورگر خودش این ارسال انجام نده ایپی سرور بلوک میشه

aspmaker
جمعه 26 خرداد 1391, 20:04 عصر
نمیدونم میخواید چه کاری رو انجام بدین. اما کارتون به نظرم استاندارد نیست، در این مواقع احتمال دریافت نشدن اطلاعات از کاربر زیاده.

aspmaker
جمعه 26 خرداد 1391, 20:08 عصر
اگر صفحه اون سایت دوم رو توی صفحتون لود نکنید (مثل iFrameو ...) هتگام باز شدن IP یوزر لاگ میشه نه سرور شما.
اما گرفتن اطلاعات رو به نظرم نشه انجام داد!

موفق باشید.

sara_aryanfar
جمعه 26 خرداد 1391, 20:13 عصر
یعنی هیچ راهی وجود نداره که بتونیم از ایپی خود کاربر استفاده کنیم ؟

aminghaderi
جمعه 26 خرداد 1391, 22:11 عصر
یعنی هیچ راهی وجود نداره که بتونیم از ایپی خود کاربر استفاده کنیم ؟


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

sara_aryanfar
جمعه 26 خرداد 1391, 22:28 عصر
خب تگ های ای فریم فکر کنم راهش باشه اما همونطور که گفتم مشکل بلوک شدن آی پی سرور هست من می خوام پر کردن اون فرم به نحوی باشه که با ایپی کاربر باشه

sara_aryanfar
جمعه 26 خرداد 1391, 22:31 عصر
فکر کنم با جی کوئری و داشتن چند ارتباط اسنکرون با سرور و پردازش های سروری بشه این کار رو کرد .

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

aminghaderi
جمعه 26 خرداد 1391, 22:47 عصر
خب تگ های ای فریم فکر کنم راهش باشه
مشکل شما همین هست نه ای پی سرور.
برای همین پرسیدم ، چون احتمال می دادم راه در حد ترسیم فکری هست .
پر کردن فیلد های یه سایت دیگه محور این کار هست که اول باید به اون مسلط باشید ، بعد می شه با ای پی کاربر فرستاد ولی خوب دردسر های خودش رو داره ولی احساس می کنم شدنی باشه چون خودم تا یه حدی رو قبلا توی یه پروژه اجرا کرده بودم.

sara_aryanfar
جمعه 26 خرداد 1391, 23:12 عصر
من قبلا در برنامه های ویندوزی پرکردن فرم سایت ها رو انجام دادم و تو وب هم فکر می کنم به راحتی میسر بشه اگر ممکنه مثالی در مورد استفاده از ایپی کاربر برام بدید و اینکه به نظرتون چه روشی برای این کار بهترین هست ممنون

aminghaderi
شنبه 27 خرداد 1391, 00:15 صبح
خواهش می کنم.
شما بفرماید که دقیقا به چه صورت این کار رو می کردید و از چه کد و کلاسی استفاده می کردید تا توضیح بدم.

sara_aryanfar
شنبه 27 خرداد 1391, 01:22 صبح
ببینید الان بحث من پر کردن فرم نیست بلکه استفاده از ایپی کاربر در هنگام ارسال اون فرم هست یعنی نمی خوام سایت هدف ایپی سرور من رو ثبت کنه؟

sara_aryanfar
شنبه 27 خرداد 1391, 14:16 عصر
ip کاربر رو باید بشه به روشی استفاده کرد؟

alonemm
شنبه 27 خرداد 1391, 15:22 عصر
باسلام:

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

WebRequest req = WebRequest.Create("http://www.acc-taraz.com/login-user.php");
string postData = "username1=a&password1=123";
byte[] send = Encoding.Default.GetBytes(postData);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = send.Length;
Stream sout = req.GetRequestStream();
sout.Write(send, 0, send.Length);
sout.Flush();
sout.Close();
WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string html = sr.ReadToEnd();
Literal1.Text = html;

پ:و
روی تغییرات IP باید کارکنید.

sara_aryanfar
شنبه 27 خرداد 1391, 18:33 عصر
باسلام:

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

WebRequest req = WebRequest.Create("http://www.acc-taraz.com/login-user.php");
string postData = "username1=a&password1=123";
byte[] send = Encoding.Default.GetBytes(postData);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = send.Length;
Stream sout = req.GetRequestStream();
sout.Write(send, 0, send.Length);
sout.Flush();
sout.Close();
WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string html = sr.ReadToEnd();
Literal1.Text = html;

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

aspmaker
یک شنبه 28 خرداد 1391, 00:20 صبح
دوست عزیز این Page که میخواید واسه کاربر باز بشه رو چطور می خواید واسه کاربر نشون بدین؟ مثل یه لینک که حالت New_tab باشه و با کلیک پنجره جدید باز بشه؟ یا توی Page شما باز میشه؟ یا ...
هر کدوم که باشه فقط IP کسی که Page رو Request کرده لاگ میشه نه سرور شما!! تنها یه مشخصه رو میتونه سرور دوم از سرور شما داشته باشه.

چی کار میخوای کنی که ردی ازت نخواد بمونه؟!!:متفکر:

sara_aryanfar
یک شنبه 28 خرداد 1391, 11:37 صبح
ببینید من یه سیستمی دارم که کاربرا با سیستم های وبلاگ تعامل دارن و می تونن به مطالبی که پسندیدن نظر بدن حالا چون تعداد کاربرا زیاد میشه سرویس های وبلاگ وقتی ای پی سرور رو بلاک می کنن دیگه کاربر نمی تونه اگر از مطلبی خوشش اومد در اون نظر بده برا همین من می خوام ای پی خود کاربر ثبت بشه و اینکه مثلا من ادرس نظردهی رو به اون صفحه جدید بفرستم و نتیجه ارسال نظر برام برگشت داده بشه حالا تغدادی سوال دارم
1 اگر ما صفحه نظر رو داخل سایت خودمون باز کنیمبا ای فریم وقتی فرم پر شد و ارسال شد اون وقت ای پی سرور من ثبت میشه یا ایپی کاربر؟
2-

aspmaker
یک شنبه 28 خرداد 1391, 12:16 عصر
هنوز متوجه نشدم چرا سیستم وبلاگ باید شما رو بلاک کنه! (فکر میکنم به عنوان اسپمر بلاک کنند)، البته بگذریم...
عرض شود که iFrame رو نمیدونم چطور اطلاعات رو واکشی میکنه از سایت دوم، اما اگر از کلاس WebRequest توی کدهاتون استفاده کنید برای گرفتن صفحات سایت دوم IP شما اونجا لاگ میشه.
برای شروع اگر میتونید روی یه هاست و دامین تست بگیرید و ببینید نتیجه چیه.

alonemm
یک شنبه 28 خرداد 1391, 13:17 عصر
ممکنه بیشتر توضیح بدین توجه داشته باشین که من می خواهم این ارسال فرم با ای پی کاربر باشه و سایت مقصد نتونه ای پی سرور رو بگیره

باسلام:

در قالب توضیحات درمورد کدی که در پست قبلیم گزاشتم باید بگم که ما یک درخواست رو به به سمت یک صفحه از یک سایت ارسال میکنیم که میخوایم نام کاربری و رمز عبور باشه و به صورت Post ارسال میشند که جواب رو در قالب یک StreamReader خوانده و در یک شی Literal نمایش میدیدم.

به عهده خود شما:
برای تست هم میتونید یک صفحه روی هاست خودتون بزارید و در یک صفحه دیگر با همین کد بالا تست کنید که چه IP برمیگردونه و یک بار هم تست کنید که وقتی مستقیم به این صفحه میرید چه IP نمایش داده میشه مثل در یک کنترل لیبل.

aminghaderi
یک شنبه 28 خرداد 1391, 14:22 عصر
در قالب توضیحات درمورد کدی که در پست قبلیم گزاشتم باید بگم که ما یک درخواست رو به به سمت یک صفحه از یک سایت ارسال میکنیم که میخوایم نام کاربری و رمز عبور باشه و به صورت Post ارسال میشند که جواب رو در قالب یک StreamReader خوانده و در یک شی Literal نمایش میدیدم.
سلام .
در سناریو ای که یه فرم هست که 4 تا textbox داره باید چکار کرد؟؟؟
چطوری می شه فهمید صفحه یه حاوی چه متقیر هایی هست؟؟
string postData = "username1=a&password1=123";

معمولا در صفحات چیز های دیگری هم به سرور ارسال می شوند ، مثل view state ها و فیلد مخفی ها و ... اونها رو چکار می کنید؟؟
مورد بعدی متغییر ها رو اسم شی گرفتید (مثل username1 که ظارها اسم شی است .) درسته؟

alonemm
یک شنبه 28 خرداد 1391, 14:33 عصر
سلام دوست من:

شما نام و مقدار تکس باکس ها رو به هر تعدادی که باشه میتونید در متغییر String که با نام postData هست با & از هم جدا کنید.
username1 نام فیلد تکس باکس میباشد در صفحه سایت مربوطه که میتونید نام فیلدها رو با View Source گرفتن از صفحه جاری مشخص کنید.
فیلد های مخفی هم همانند تکس باکس ها ارسال میشند و ما نیازی به View State صفحه هم نداریم چون چیزی نگه داری نمیشه البته بازم بستگی به صفحه و تکنولوژی هایی که در صفحه استفاده شده داره که میشه برای هر صفحه ای با کمی دقت به کدها و تبدیل داده ها مقادیر رو به صورت صحیح ارسال کرد و نتیجه رو گرفت.



موفق باشید.

aminghaderi
یک شنبه 28 خرداد 1391, 15:05 عصر
سلام دوست من:

شما نام و مقدار تکس باکس ها رو به هر تعدادی که باشه میتونید در متغییر String که با نام postData هست با & از هم جدا کنید.
username1 نام فیلد تکس باکس میباشد در صفحه سایت مربوطه که میتونید نام فیلدها رو با View Source گرفتن از صفحه جاری مشخص کنید.
فیلد های مخفی هم همانند تکس باکس ها ارسال میشند و ما نیازی به View State صفحه هم نداریم چون چیزی نگه داری نمیشه البته بازم بستگی به صفحه و تکنولوژی هایی که در صفحه استفاده شده داره که میشه برای هر صفحه ای با کمی دقت به کدها و تبدیل داده ها مقادیر رو به صورت صحیح ارسال کرد و نتیجه رو گرفت.
موفق باشید.
ممنون از پاسخ شما .
این روش روش خوبی هست ولی همه جا نمی شه ازش استفاده کرد ، برای مثال صفحاتی که از فعالیت کاربر لوگ برداری می کنه ، به هیچ وجه نمی گذاره این عمل انجام بشه؟!
چطور؟؟
به این صورت که با بررسی ip و کوکی موجود در رایانه کاربر ، راحت می شه این عمل رو تشخیص و خونثی کرد!
البته بماند که سیستم های امنیتی تدابیر پیچیده تری رو پیاده سازسی می کنند ، که دور زدن اونها اصلا کار ساده ای نیست ، و خود شما در جریان هستید.
ولی برای فرم ساده ، قبول دارم جواب می دهد.

alonemm
یک شنبه 28 خرداد 1391, 15:23 عصر
بله دوست عزیز در پست قبلیم هم گفتم که برای پیاده سازی در بعضی صفحات بستگی به تکنولوژی و راهکارهای امنیتی که پیاده سازی شده انجام این کار رو کمی سخت میکنه چون ما داریم یک صفحه رو به صورت مجازی و بدون درخواست از طرف یک مرورگر و یا کاربر لود میکنیم که اطلاعات زیادی از موارد ارسالی نداریم.

در قالب یک مثال:
یک مقاله خوندم که برای امنیت بیشتر در فرم لاگین یک سشن ساخته میشد که یک کد با الگوریتم خاص تشکلی شده از Session ID و ... به صورت هش داخل آن ذخیره میشد و در یک فیلد مخفی در فرم به همین صورت و در فرمی که صحت نام کاربری و رمز عبور رو تست میکرد اول محتوای این سشن و فیلد مخفی چک میشد که برابر باشند در غیر این صورت تشخیص داده میشد کاربر از جایی به جز فرم مورد نظر قصد دسترسی ورود به سیستم رو داره.

موفق باشید.

sara_aryanfar
یک شنبه 28 خرداد 1391, 17:48 عصر
ببینید بحث ما در اینجا به طور خاص صفحه ارسال نظر در وبلاگ ها هست من چطوری می تونم هر تعداد نظر ارسال کنم بدون اینکه بلاک بشه ای پی سرور چون اگه تعداد کاربران من زیاد بشه فکر کنم اسپم میشه و بلاک می کنه حالا من دنبال راهی هستم که ارسال فرم با ای پی کاربر باشه اگه ممکنه مثال بزارید ممنون میشم

mehdi_ha
سه شنبه 17 مرداد 1391, 17:26 عصر
سلام خانم آريانفر گرامي ، من هم ميخوام مشابه اينکار رو انجام بدم البته من مشکل بلاک شدن IP رو ندارم ، من نمايندگی يکی از شرکتهای نرم افزاری رو دارم و مکانيزمي که ميخوام انجام بشه اينه که يه فرمی رو توی سايت خودم دارم که 7 تا فيلد از 8 تا فيلدش رو اجبارا بايد کاربر پر کنه بعد زمانی که کليد submit رو ميزنه اين اطلاعات داخل ديتابيس من ذخيره بشه و سريالی رو که کاربر وارد کرده بعلاوه يسری اطلاعات ثابت که قبلا در نظر گرفته شده که مشخصات شرکت بنده هستش به فرم مشابهی در سايت مرجع فرستاده بشه و پاسخ آن که يه يوزر و پسورد هستش به سايت من برگرده و اون هم داخل رکورد کاربر ذخيره بشه بدون اينکه کاربر اين عمليات رو ببينه و بعد از آن ايميلي که حاوی يوزر و پسورد هستش و حاوی يسری اطلاعات در مورد شرکت ما هستش برای کاربر فرستاده بشه تا بتونيم واسه پشتيبانی و اعلام زمان expire با کاربرمون تماس بگيريم ...
حالا بنظر شما و بقيه اساتيد چطور ميشه اينکارو انجام داد ؟