PDA

View Full Version : PostBackURL



hamed_bostan
سه شنبه 29 اسفند 1385, 13:05 عصر
با سلام خدمت دوستان
می خواستم ببینم استفاده از روش postbackURL روش امنی هست یا نه و ایا کار درستی هست که object ها یا مقادیر رو از این روش pass بدیم به یه صفحه؟

ضمنا این لینک رو هم دیدم :
http://barnamenevis.org/forum/showthread.php?t=55908&highlight=postbackURL

اما من واسه ام چند مطلب مهمه
1- امنیت اطلاعاتی که رد و بدل میشه
2- اگر تعداد کاربران زیاد بشه با توجه به توضیح حاج اقا راد که اینها توی حافظه سرور دخیره میشه ایا سربار داره و روی سرور فشار میاد و از کارایی سیستم می کاهه؟
3- اگر می کاهه روش بهتری غیر از session و querystringهست؟
ممنون

manager
سه شنبه 29 اسفند 1385, 14:56 عصر
Cross Page Posting ربطی به امنیت نداره، به عبارت دیگر در امنیت اطلاعات نسبت به روش های پیشین که همان Post معمولی صفحه باشه، تاثیری نداره. اتفاقا این روش مزیت هائی نسبت به روش پیش فرض Asp.Net داره. از جمله این مزیت ها می تونم به پروسه ای شدن Application در سطح انتزاعی بالا اشاره کنم.
درسته که استفاده از Cross Page Posting خیلی ساده است ولی مزیت های زیادی داره که می تونه هزینه های Maintenance یک Web Application رو کاهش بده.
اما برگردیم به سراغ Security شما یک سری اطلاعات از کاربر دریافت کردید که می خواین به سرور ارسال کنید. تنها دقدقه امنیتی و یا Security Risk اینه که اطلاعات در بین را توسط Some Body دزدیده بشه. برای این مهم بسته به نوع اطلاعاتتون همون کارهائی که در روش عادی انجام می دادید باید انجام بدید. مثلا اطلاعات را Hash شده به سرور ارسال کنید و یا از SSL برای ارسال مقادیر فرم به صفحه مورد نظر استفاده کنید. پس هیچ Risk امنیتی جدیدی در این روش نداریم.

به نظر من هزینه های پردازشی صفحه هایی که از روش CPP (به اختصار) استفاده می کنند با هزینه های پردازش صفحه های که از روش های معمولی ارسال اطلاعات استتفاده می کنند تفاوت چندانی نداره. چون در هر دو نوع صفحه کنترل ها مجددا ساخته می شود، در نتیجه هر دو تقریبا یک اندازه منابع را اشغال می کنند. فقط صفحه هائی که از روش CPP استفاده می کنند متغیر __PREVIOUSPAGE رو به اطلاعات ارسال اضافه می کنند که البته این متغیر هم حجم زیادی نداره.

به نظر من برای کاهش مصرف منابع سرور در مورد صفحاتی که به یک باره تعداد زیادی بازدیدکننده و مراجعه کننده دارند استفاده مطلق از کنترل های HTML است. این کنترل ها منابع زیادی اشغال نمی کنند.

hamed_bostan
سه شنبه 29 اسفند 1385, 15:19 عصر
ممنون . میشه درمورد استفاده از ssl توضطح بیشتری بدین؟

manager
سه شنبه 29 اسفند 1385, 18:37 عصر
روش های متفاوتی برای ایمن سازی ارتباطات میان Client و Server وجود داره. یکی از این روش ها استفاده از پروتکل SSL است. منابع زیادی تو اینترنت وجود داره که عملکرد این پروتکل رو شرح می ده ولی من در اینجا به اختصار تشریح می کنم. SSL از دو کلید برای رمزنگاری اطلاعات استفاده می کنه. یک کلید عمومی که در دسترس همه گان قرار داره و یک کلید خصوصی که فقط Web Server شما صاحب اون هست. مرورگر ها اطلاعات را با استفاده از کلید عمومی شما به رمز در می یارن و فقط شما هستید که می تونید با کلید خصوصی خود اطلاعات را Decode کنید. شما برای استفاده از SSL کاری نباید بکنید چرا که SSL یک پروتکل جدا از برنامه (Application Independent) است، شما به عنوان یک Developer جز یکسری تنظیمات در فایل web.config و اندکی آشنائی با امکانات DotNet برای کار با SSL وظیفه ی دیگه ای ندارید و باید بقیه کارها رو به web server تون و browserها بسپارید.
همچنین web server شما باید یک Certificate برای امکان ارائه SSl Service در اختیار داشته باشه (که البته وظیفه تامین اون هم به عهده شما نیست). برای تهیه Certificate رو باید به یک CA مراجعه کنید، یکی از معروف ترین CAها Verisign هست به طور خیلی خلاصه باید بگم Web Server شما از طریق Authenticate شدن CA شما Authenticate می شه.

تو اینترنت شرکت های زیادی وجود دارند که می تونید با استفاده از اونها یک Certificate رایگان رو به صورت آزمایشی دریافت کنید. من پیشنهاد می کنم حتما یک Certificate آزمایشی دریافت کنید و تو Intranet محل کار خودتون یا حتی تو Localhost خودتون راه اندازی کنید. البته توقع نداشته باشید که راه اندازی این سرویس تو اینترنت به این آسونی ها باشه. البته در مورد هزینه ش هم حتما با کارفرما تون یک مشورتی بکنید.

من تجربه ای در زمینه راه اندازی SSL تو اینترنت ندارم وگرنه حتما براتون توضیح می دادم که چه طور می شه این کار رو انجام داد.

به جز SSL پروتکل های ارتباط ایمن دیگه ای نظیر S-HTTP یا TLS و .. وجود داره که همین مسئولیت رو دارند ولی SSL به نظر من خیلی معروف تره البته همشون رو IETF تائید کرده و جزء استانداردها می شناسه.

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

hamed_bostan
سه شنبه 29 اسفند 1385, 19:59 عصر
کجا ریخته پاشیده جواب دادین . خیلی هم خوب بود . ممنون از وقتی که گداشتین .


شما به عنوان یک Developer جز یکسری تنظیمات در فایل web.config و اندکی آشنائی با امکانات DotNet برای کار با SSL وظیفه ی دیگه ای ندارید و باید بقیه کارها رو به web server تون و browserها بسپارید.



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

manager
سه شنبه 29 اسفند 1385, 20:36 عصر
من نمی دونم من شما دنبال چه مثالی هستید ولی مثل این می مونه که بگید یه مثال از HTTP بزنید یا یک مثال از CLR بزنید !!
تنظیماتی مثل :



<authentication mode="Forms">
<forms requireSSL="true" />
</authentication>
<httpCookies requireSSL="true" />

از جمله مثال هایی از تنظیمات در web.config هست.