PDA

View Full Version : یه سوال درباره وب کانفیگ



mehrdad201
جمعه 14 دی 1386, 12:16 عصر
سلام به همه

یه مساله ای بود که مدتیه ذهن منو مشغول کرده.....


من با استفاده از یه مقاله در اینترنت یه کلاس نوشتم واسه برنامم که کارش هندل کردن یوزر آنلاین ها و همچنین چک کردن بلاک IP ها و ... هست. کلاس برنامم هم از IHttpModule مشتق شده

به این شکل


public class Monitor : IHttpModule

بعد واسه اینکه این این کلاس کار کنه باید در داخل تگ های <httpModules> این ایتم رو اضافه میکردم.


<add name ="Monitor" type="Monitor" />

الان سوالم اینه:
فرض کنید منن یه برنامه ای نوشتم. حالا اگر طرف بیاد این خط <add name ="Monitor" type="Monitor" /> رو از داخل تگ های <httpModules> برداره به راحتی سیستم هندلینگ ما از رده خارج میشه و دیگه کار نمیکنه....

حالا میخوام بدونم که واسه جلوگیری از این کار چه میشه کرد !؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

mahdi_farhani
جمعه 14 دی 1386, 12:26 عصر
خوب قرار نیست کسی به سرور دسترسی داشته باشه ، که به خواهد وب کانفیگو دسترسی داشته باشه ،
روشی که به ذهن من میرسه اینه که کاری کنی این به صورت زمان اجرا اضافه بشه ، ولی چطوری رو نمیدونم ، شاید اصلاً هم شدنی نباشه

scorpion_man
جمعه 14 دی 1386, 12:51 عصر
با سلام به همه دوستان
من واقعا نمی دونم چرا بعضی از افراد در مورد webconfig این همه وسواس دارن مگه webconfig جدا از فایلهای دیگه هست که رو سرور هستند همشون برای سرور حیاتی هستند حالا کسی که به webconfig دسترسی داره میتونه به فایلهای دیگه هم دسترسی داشته باشه تنها وسواسی که میشه رو webconfig داشت در مورد connection string هاست که بازم خیلی ضروری نیست ولی با این حال بعضی از افراد برای اطمینان خودشون اونو encrypt میکنن بقییه موارد اصلا نیازی نیست پس زیاد به فکر این فایل نباشید و کارتونو بکنید
موفق باشید

mehrdad201
جمعه 14 دی 1386, 15:39 عصر
دوست عزیز فکر کنم نتونستم منظورم رو به طور کامل و واضح بیان کنم.

عرض کردم من برای شما پروژه مینویسم. یه ماژولی رو هم تو قسمت httpmodules اضافه کردم....

حالا شما (خریدار) میای و این قسمت رو دستکاری می کنی..... مثلا این تگی که من اون بالا گفتم رو حذف میکنی...

چطور میشه یه
وطری اینا رو کد کرد که قابل تشخیص نباشند..

miladr
جمعه 14 دی 1386, 17:12 عصر
با سلام به همه دوستان
من واقعا نمی دونم چرا بعضی از افراد در مورد webconfig این همه وسواس دارن مگه webconfig جدا از فایلهای دیگه هست که رو سرور هستند همشون برای سرور حیاتی هستند حالا کسی که به webconfig دسترسی داره میتونه به فایلهای دیگه هم دسترسی داشته باشه تنها وسواسی که میشه رو webconfig داشت در مورد connection string هاست که بازم خیلی ضروری نیست ولی با این حال بعضی از افراد برای اطمینان خودشون اونو encrypt میکنن بقییه موارد اصلا نیازی نیست پس زیاد به فکر این فایل نباشید و کارتونو بکنید
موفق باشید

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

mehrdad201
جمعه 14 دی 1386, 23:00 عصر
بیشتر توضیح میدید دوست عزیز ؟

miladr
جمعه 14 دی 1386, 23:52 عصر
من خودم خیلی تسلط ندارم رو این مبحث دوست من که در واقع مشاور امنیتی من هست این کار ها رو انجام میده.بوسیله نرم افزار هایی که استفاده می کنه یه حفره رو سرور که ممکنه بدلیل نصب نکردن patch امنیتی وجود داشته باشه نفوذ می کنه.(تو هاست ها کم نیست).و میتونه read بگیره.یعنی میتونه سورس صفحه شما رو ببینه یا فایل webconfig شما رو ببینه.خوب اونوقت که دوست من user pass ip بانک شما رو داره. و میتونه کانکت شه به بانک شما و ....

scorpion_man
شنبه 15 دی 1386, 00:41 صبح
من خودم خیلی تسلط ندارم رو این مبحث دوست من که در واقع مشاور امنیتی من هست این کار ها رو انجام میده.بوسیله نرم افزار هایی که استفاده می کنه یه حفره رو سرور که ممکنه بدلیل نصب نکردن patch امنیتی وجود داشته باشه نفوذ می کنه.(تو هاست ها کم نیست).و میتونه read بگیره.یعنی میتونه سورس صفحه شما رو ببینه یا فایل webconfig شما رو ببینه.خوب اونوقت که دوست من user pass ip بانک شما رو داره. و میتونه کانکت شه به بانک شما و ....

با سلام به همه دوستان
اولا بنده عرض کردن encrypt کردن connection string ها منطقی هست و بقییه چیزا نیازی نداره ولی با این وجود باز سرور ها یعنی اکثر بیشتر سرور ها اجازه دسترسی remote به database ها رو میبندند یعنی حتی در صورتی که شما connection string رو هم داشته باشید امکان دسترسی شما به database در حد صفر هست
موفق باشید

scorpion_man
شنبه 15 دی 1386, 00:46 صبح
دوست عزیز فکر کنم نتونستم منظورم رو به طور کامل و واضح بیان کنم.

عرض کردم من برای شما پروژه مینویسم. یه ماژولی رو هم تو قسمت httpmodules اضافه کردم....

حالا شما (خریدار) میای و این قسمت رو دستکاری می کنی..... مثلا این تگی که من اون بالا گفتم رو حذف میکنی...

چطور میشه یه
وطری اینا رو کد کرد که قابل تشخیص نباشند..

اما در مورد شما دوست عزیز اگه خریدار شما قراره به فایلای شما دست ببره میتونه با دستکاری بقیه آیتمها نیز کار برنامه رو مختل کنه با این وجود من به حاشیه نمیرم و جواب صحیح اینه که از نظر تئوریک encrypt کردن یا انجام کارای دیگه بر روی handle ها وجود نداره ولی باز امکان داره شخصی با یک روش خاص این کارو انجام بده که من تا حالا تو هیچ مقاله ای چنین چیزی ندیدم
موفق باشید

Behrouz_Rad
شنبه 15 دی 1386, 17:26 عصر
سرور ها یعنی اکثر بیشتر سرور ها اجازه دسترسی remote به database ها رو میبندند یعنی حتی در صورتی که شما connection string رو هم داشته باشید امکان دسترسی شما به database در حد صفر هست
دسترسی Remote رو می بندن؟
پس ملت چطور دارن با SQL Server از روی سیستمشون به دیتابیسشون روی سرورشون متصل میشن؟

mehrdad201
یک شنبه 16 دی 1386, 00:15 صبح
آقای راد درست میگن...

ما راحت با سافت ور ویندوزی به دیتابیس وصل میشیم و آپدیتش می کنیم....

کل سوال من در این مورد بود که یه جوری وب کانفیگ رو درست کنیم که طرف ندونه توش چطوریه و فکر دستکاری کردن به سرش نزنه

مثل موردی که من در بالا در مورد httpmodules گفتم

scorpion_man
یک شنبه 16 دی 1386, 00:34 صبح
با سلام به همه دوستان
آقای راد از شما بعیده که اینطوری بدون دلیل سخنی رو ثابت شده فرض کنید
بنده عرض کردم بسیاری از سرورها که تضمین امنیتی میدن که تو ایران هم زیاده امکان ارتباط remot رو به data server میبندند و فقط امکان attach کردن و restore کردنو میدن حالا مردم دارن با manager متصل میشن خوب معلومه رو اون سرور امکان remot بسته نشده ولی به نظر بنده بستن امکان remote دیتا بیس خیلی امنیت رو بالا میبره
حالا به هر حال encrypt کردن connection string هم یه تضمین امنیتی هست
ولی آقای mehrdad عرض کردم از نظر تئوری encrypt کردن httphandle ها امکان نداره ولی اگه هم این اتفاق هم رخ بده performance برنامه پایین مییاد
با تشکر

mehrdad201
یک شنبه 16 دی 1386, 00:39 صبح
از راهنماییتون ممنونم دوست عزیز

در مورد انکریپت کردن کانکشن استرینگ متاسفانه با اون روشی که در فروم هم یکی از دوستان مطرح کرده بودند به جایی نرسیدم. چون باید یه سری فایلهای key روی سرور نصب باشن که نیستند...

شما برای کد کردن کانکشن استرینگ چه روشی دارید ؟ میتونید من رو راهنمایی کنید ؟!

Behrouz_Rad
یک شنبه 16 دی 1386, 10:05 صبح
بنده عرض کردم بسیاری از سرورها که تضمین امنیتی میدن که تو ایران هم زیاده امکان ارتباط remot رو به data server میبندند و فقط امکان attach کردن و restore کردنو میدن حالا مردم دارن با manager متصل میشن خوب معلومه رو اون سرور امکان remot بسته نشده ولی به نظر بنده بستن امکان remote دیتا بیس خیلی امنیت رو بالا میبره
البته من نمی دونم که شما این آمار رو از کدام مرجع رسمی به دست آوردی یا با چند تا هاست کار کردی اما این گفته صحیح نیست.
اکثر هاست های معتبری که در خارج از کشور سرویس میدن از جمله DiscountAsp و DotNetPark و ... امکان اتصال Remote رو به راحتی فراهم می کنند و به دلیل سهل انگاری و عدم کفایت برنامه نویس در حفظ مشخصات دیتابیسش امکان دسترسی Remote رو نمی بندن.
فرض کن من قصد دارم که دیتابیسی رو Alter کنم. آیا باید برنامه رو متوقف، کل دیتابیس رو حذف و دیتابیس جدید با حجم فرضا 100 مگابایت رو مجددا آپلود کنم؟ به نظرت این کار منطقیه؟
به راحتی میشه نتیجه گرفت که هاستی (چه ایرانی/چه خارجی) که دسترسی Remote رو می بنده اشتباه می کنه.
امنیت تنها با محدود شدن به وجود نمیاد.

موفق باشید.

scorpion_man
یک شنبه 16 دی 1386, 11:59 صبح
البته من نمی دونم که شما این آمار رو از کدام مرجع رسمی به دست آوردی یا با چند تا هاست کار کردی اما این گفته صحیح نیست.
اکثر هاست های معتبری که در خارج از کشور سرویس میدن از جمله DiscountAsp و DotNetPark و ... امکان اتصال Remote رو به راحتی فراهم می کنند و به دلیل سهل انگاری و عدم کفایت برنامه نویس در حفظ مشخصات دیتابیسش امکان دسترسی Remote رو نمی بندن.
فرض کن من قصد دارم که دیتابیسی رو Alter کنم. آیا باید برنامه رو متوقف، کل دیتابیس رو حذف و دیتابیس جدید با حجم فرضا 100 مگابایت رو مجددا آپلود کنم؟ به نظرت این کار منطقیه؟
به راحتی میشه نتیجه گرفت که هاستی (چه ایرانی/چه خارجی) که دسترسی Remote رو می بنده اشتباه می کنه.
امنیت تنها با محدود شدن به وجود نمیاد.

موفق باشید.
با سلام به همه دوستان
من هیچ وقت دوست ندارم وارد بحثهایه حاشیه ای بشم به هر حال من تا حالا با نصف بیشتر هاستها این مشکل رو داشتم و واقعیت این هست که برای alter کردن یه database نیازی به اتصال remot نیست و با کد همه کار میشه کرد و برنامه های کاربردی هم برای این کار وجود داره که دوتا database رو بهش میدی برای تفاوتهاش کد میده بیرون و فقط کافیه این کد رو اجراء کنی تا دیتابیس تغییر بکنه به هر حال برای نگهداری connection string خیلی کارا میشه کرد که اینترنت پر از این روشهاست ولی با این حال هر عمل پیچیده ای باعث کاهش performance کار میشه که در کارهای بزرگ تاثیر خودش رو میذاره با این حال برای بعضی از کارها مجبور به کارهای امنیتی هستیم به هر حال باز هم من اینجا با اطمینان عرض میکنم به غیر از encrypt کردن connection string که امنیت رو بالا میبره بقیه چیزها نیازی نداره و کاری است عبث