PDA

View Full Version : بدست آوردن مقدار یک کنترل سمت سرور



مهدی رحیم زاده
یک شنبه 12 شهریور 1391, 14:14 عصر
با سلام خدمت دوستان عزیز
من یک کنترل captcha دارم که با یک تابع یک رشته رو به من میده. میخوام که این رشته رو که این تابع داره خروجی میده رو توی جی کوئری بخونم و توی یک متغییر ذخیره کنم . میخواستم اگر امکان داره بنده رو راهنمایی کنید.
با تشکر

mehdi.mousavi
دوشنبه 13 شهریور 1391, 10:38 صبح
با سلام خدمت دوستان عزیز من یک کنترل captcha دارم که با یک تابع یک رشته رو به من میده. میخوام که این رشته رو که این تابع داره خروجی میده رو توی جی کوئری بخونم و توی یک متغییر ذخیره کنم . میخواستم اگر امکان داره بنده رو راهنمایی کنید. با تشکر

سلام.
نمیدونم دقیقا هدفتون چیه، اما خوب دقت کنید که چک کردن کد سمت Client باعث نشه تا ماهیت وجودی Captcha از بین بره... با این توضیح، شما می تونید
تابع Server Side مورد نظر رو با فراخوانی توابع load، getJSON (http://jqapi.com/#p=jQuery.getJSON)، ajax (http://jqapi.com/#p=jQuery.ajax) و ... (یا در ASP.NET با استفاده از Page Method ها، Client Callback ها، Web Service ها و ...)
اجرا کرده و از مقدار بازگشتی اون استفاده کنید. اگر دقیق تر بفرمایید با کجای این مساله مشکل دارید، بهتر راهنمایی خواهم کرد.

موفق باشید.

مهدی رحیم زاده
سه شنبه 14 شهریور 1391, 10:13 صبح
ببینید من دارم داده ها رو با استفاده از jquery ajax ثبت می کنم. یک کنترل captcha هم دارم که یا تابع داره که عمل validate رو انجام میده . میخواستم اون تابع رو فراخوانی کنم که نشد ، حالا من یک تابع دیگه برای این کنترل تعریف کردم که کد captcha رو به من میده . حالا میخوام که این کد رو بررسی کنم و اگر درست بود ، به صفحه مورد نظر ارسال کنم نتایج رو برای ثبت در بانک . میخواستم راهنماییم کنید با توجه به اینکه کنترل Captcha توی این صفحست و من برای ثبت باید اطلاعات رو به صفحه دیگه ای ارسال کنم ، باید چه کاری انجام بدم؟
با تشکر

mehdi.mousavi
پنج شنبه 16 شهریور 1391, 11:45 صبح
ببینید من دارم داده ها رو با استفاده از jquery ajax ثبت می کنم. یک کنترل captcha هم دارم که یا تابع داره که عمل validate رو انجام میده . میخواستم اون تابع رو فراخوانی کنم که نشد ، حالا من یک تابع دیگه برای این کنترل تعریف کردم که کد captcha رو به من میده . حالا میخوام که این کد رو بررسی کنم و اگر درست بود ، به صفحه مورد نظر ارسال کنم نتایج رو برای ثبت در بانک . میخواستم راهنماییم کنید با توجه به اینکه کنترل Captcha توی این صفحست و من برای ثبت باید اطلاعات رو به صفحه دیگه ای ارسال کنم ، باید چه کاری انجام بدم؟
با تشکر

سلام.
فرض کنیم که کد Captcha ای که سمت سرور تولید میشه، در Session، Cache یا ... نگهداری بشه. بنابراین صفحه Render میشه، کد مورد نظر سمت سرور نگهداری میشه و ... از طرفی سمت Client، شما با استفاده از Ajax اطلاعات رو به سرور Post می کنید. طبیعتا اولین گام این هستش که بررسی کنید ببینید آیا کد Captcha ی نگهدرای شده سمت سرور، با کد وارد شده توسط User تطابق داره یا خیر، سپس به سراغ Validate کردن Field های Submit شده برید...

اگر کد تولیدی Captcha رو به سمت Client بیارید، اونوقت ماهیت امنیتی Captcha از بین خواهد رفت، چرا که مهاجم قادر خواهد بود تا بدون Validate شدن Captcha، فرم رو Submit کنه (با Disable کردن JavaScript سمت Client، یا Inject کردن کد). بنابراین اینکه بخواهید کد رو بخونید و سمت Client بیارید، کار صحیحی نیستش. ضمن اینکه در سناریوای که توضیح دادید، شما دو بار اطلاعات رو به سرور ارسال خواهید کرد (که بازهم نیازی به این مساله نیست). چرا که شما ابتدا میخواهید ببینید آیا Captcha ی وارد شده صحیحه یا نه، سپس اطلاعات رو به مقصد ارسال کنید. اما مساله رو اینطوری ببینید: اجازه بدید اطلاعات (همراه Security Code وارد شده توسط کاربر) به سرور ارسال بشه، سمت سرور کلیه Validation ها (اعم از Captcha و اطلاعات فرم) رو انجام بدید و در صورت موفقیت آمیز بودن اطلاعات رو در بانک ذخیره کنید.

موفق باشید.

Variable
پنج شنبه 16 شهریور 1391, 16:55 عصر
اقای موسوی
میخاستم بدونم ایا امکانش هست بدون اینکه دستوری از کلاینت به سرور ارسال بشه . و سرور مطلع بشه
خوده سرور کلاینت ها رو فراخونی کنه . یعنی اطلاعات به کلاینت هاش بفرسته.
سرور مانند پابلیشر عمل کنه و بقیه کلاینت ها سابسکرایب باشن