PDA

View Full Version : connection string



shahabm58
دوشنبه 02 اردیبهشت 1387, 18:07 عصر
با سلام به دوستان ، من شخصا در این بحث از Application استفاده می کنم . در ضمن فقط خودم به اون دسترسی دارم . آیا لزومی داره از web config استفاده کنیم؟؟

twelve
دوشنبه 02 اردیبهشت 1387, 18:47 عصر
فلسفه قرار دادن ConnectionString در وب کانفیگ :
1-امنیت و حفظ اطلاعات آن
2-سهولت در دستیابی
با روش شما ، مورد شماره 1 رو ندارید. در کل ، پارامترهایی که دائم فراخوانی میشن رو نباید در Application قرار داد.

shahabm58
دوشنبه 02 اردیبهشت 1387, 21:23 عصر
اینکه فرمودین امنیت نداره را لطفا توضیح بدین و اینکه چرا نباید application رو مرتب صدا زد؟
با تشکر

twelve
دوشنبه 02 اردیبهشت 1387, 22:54 عصر
اینکه فرمودین امنیت نداره را لطفا توضیح بدین


شی Application متغیر های موسوم به Global (متغیرهای سرتاسری که در سرتاسر پروژه وب قابل دسترسی هستند ، منظور از سرتاسر همه ی فایل ها ، فولدر ها و ... است ) و دسترسی یه مقادیر این شی برای عموم کلاینت ها آزاد است!! حال اگر کلاینت محترم ما یک هکر نسبتا نابغه باشه میتونه با یک حمله از نوع xss ، هر اونچه که در این شی هست رو جهت صبحانه صرف کنه! حتی اگر دیتاهای موجود در Application به طرز وحشتناکی رمزنگاری شده باشند هیچ فایده ای نداره ، چون تونل xss هکر در لحظه رمزنگاری حی و حاضر است. (حالا چه اطلاعاتی مهم تر از مقادیر کانکشن استرینگ میتونه وجود داشته باشه؟! ) البته در گذشته کانکشن استرینگ رو در این شی قرار میدادند ولی با ورود وب کانفیگ ذخیره و بازیابی تنظیمات (setting) برنامه وب در قالب تگ های استاندارد XML این کار عملا منسوخ شده است.



چرا نباید application رو مرتب صدا زد؟

اصولا کاربردی ترین استفاده های Application به عنوان یک شمارنده است ، مثلا شمارش تعداد درخواست های یک صفحه! اما مکانیزم این شی به صورتی است که اگر بیش از یک درخواست به صورت همزمان انجام پذیرد ، همواره فقط یک درخواست را پردازش می کند و درخواست های دیگر یا در نظر گرفته نمی شوند یا به نوعی پشت خط می مانند تا درخواست اول Application را آزاد کند ، در نتیجه اماری که از طرف این شی پاس می شود قابل اعتماد نیست. البته برای از بین نرفتن بقیه درخواست ها شی Application رو با استفاده از متد Lock قفل میکنند و بعد از پردازش متد Unlock آن را باز میکند که این Performance رو بسیار کاهش میدهد.

پ.ن: تا مجبور نشدین از Application استفاده نکنید!!
برای اطلاعات بیشتر اینجا (http://www.google.com) کلیک کنید!!!

Behrouz_Rad
دوشنبه 02 اردیبهشت 1387, 23:29 عصر
شی Application متغیر های موسوم به Global (متغیرهای سرتاسری که در سرتاسر پروژه وب قابل دسترسی هستند ، منظور از سرتاسر همه ی فایل ها ، فولدر ها و ... است ) و دسترسی یه مقادیر این شی برای عموم کلاینت ها آزاد است!! حال اگر کلاینت محترم ما یک هکر نسبتا نابغه باشه میتونه با یک حمله از نوع xss ، هر اونچه که در این شی هست رو جهت صبحانه صرف کنه!

چطوری؟!!!!!

twelve
دوشنبه 02 اردیبهشت 1387, 23:33 عصر
چطوری؟!!!!!

چی رو ؟ یعنی اینطور نیست؟

Behrouz_Rad
دوشنبه 02 اردیبهشت 1387, 23:36 عصر
نه نیست! با Session قاطی کردی برادر ;)

twelve
دوشنبه 02 اردیبهشت 1387, 23:39 عصر
خب Session و Application مگه یه مکانیزم ندارن؟

Behrouz_Rad
سه شنبه 03 اردیبهشت 1387, 00:03 صبح
بستگی داره منظورت از مکانیزم چی باشه!
ولی در کل اون چیزی که در 2 پست قبلی گفتی اشتباهه.

twelve
سه شنبه 03 اردیبهشت 1387, 00:12 صبح
ای بابا بهروز جون ، کاش یه کم واضح تر توضیح میدادی تا ما هم از این گیجی در بیایم ، من همیشه فکر میکردم معماری هر دوی اینا (session & application) یکی هستند و فقط تفاوتشون در سطح دسترسی است!!
البته من چیزی رو که اون بالا گفتم نقل از یک منبع خارجی بود که خیلی قبل خونده بودم و الان نمیدونم از کجا خوندم ( اگر پیداش کنم سی میکنم با دقت تر بخونمش و اگر با برداشتم فرق نداشت میذارمش اینجا )

برای مثال اینجا هم که اینطوری نوشته :



Application State is very similar to Session State. It can store the same type of objects, retain information on the server, and uses the same dictionary-based syntax.

http://www.devasp.net/net/articles/display/231.html

خوشحال میشم یه خورده توضیح بدین در این مورد که این دوستمون هم جواب صحیح این سوالش رو بگیره


با سلام به دوستان ، من شخصا در این بحث از Application استفاده می کنم . در ضمن فقط خودم به اون دسترسی دارم . آیا لزومی داره از web config استفاده کنیم؟؟

Behrouz_Rad
سه شنبه 03 اردیبهشت 1387, 00:17 صبح
اون دوستمون که باید از Web.Config استفاده کنه و بحثی درش نیست.
در مورد سوال شما:
هر چیزی که در Application قرار می گیره در Session هم می تونه قرار بگیره.
تفاوت فقط در سطح دسترسی و میزان عمر هست.
Session برای هر کاربر هست اما Application برای کل پروژه. همچنین Application تا زمان Restart نشدن App Domain وجود داره اما زمان عمر Session محدود هست.
چون Session برای هر کاربر منحصر به فرد هست باید روشی برای Tracking اش وجود داشته باشه که بدین منظور از SID که در کوکی قرار می گیره استفاده میشه اما Application نیازی به Tracking نداره پس کوکی ای هم وجود نداره. پس مشکل امنیتی برای Application وجود نداره.

موفق باشید.

shahabm58
چهارشنبه 11 اردیبهشت 1387, 12:21 عصر
دوستان عزیر نکته ای که به اون در نتیجه گیری نپرداختین دلیل ارچحیت web config به application بود در connection string. با تشکر.