PDA

View Full Version : سوال: چند سوال در مورد استفاده از وب سرویس در سی شارپ



m.kahtooei
سه شنبه 01 تیر 1395, 15:55 عصر
سلام به همگی
من یه برنامه سی شارپ نوشتم که با وب سرویس کار میکنه . یه اطلاعاتی رو میفرسته و از طریق وب سرویس اطلاعات در پایگاه داده ذخیره میشه و همچنین میتونه اطلاعاتی رو از اون بگیره یعنی درخواستش رو به وب سرویس میفرسته و اطلاعات درخواستیش از دیتابیس گرفته میشه و ارسال میشه.
حالا من سه تا سوال داشتم اگه دوستان جواب بدن ممنون میشم :

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


2 - من هنوز هاستی برای میزبانی وب سرویسم نگرفتم. اگه دوستان راهنمایی کنند که چه نوع هاستی مناسب کار منه ممنون میشم. البته من درحال حاظر سایتی ندارم و تنها استفاده ای که میخوام از هاست بکنم برای وب سرویس و سرویس گرفتن از طریق برنامه هست. احتمالا نیاز باشه که همزمان هزار نفر یک درخواست رو به وب سرویس بفرستن که البته حجم اطلاعات زیاد نیست ولی تعداد درخواست ها میتونه زیاد باشه.مثلا چیزی شبیه شبکه های اجتماعی که فقط متنی رو میخونن و یا مینویسن.


3 - بعضی از اطلاعات دریافتی ویا ثبت اطلاعات مهم هست و هرکسی نباید دسترسی داشته باشه و بتونه انجام بده مگر از طریق نرم افزار و با حساب کاربری خودش. میخواستم راهنمایی کنید که برای امنیت بیشتر و جلوگیری از دسترسی های غیرمجاز چه راهکاری وجود داره. چونکه اگر کسی آدرس وب سرویس رو بدونه و پارامترهای موردنیازش رو هم بدونه میتونه از طریق مرورگر هم اطلاعاتی رو ثبت کنه و یا دریافت کنه



ممنون میشم اگه اساتید کمک کنن و به سوالاتم جواب بدن ویا اینکه منابعی رو برای برای دونستن جواب سوالاتم معرفی کنن.

daffy_duck376
سه شنبه 01 تیر 1395, 18:17 عصر
1 - خیلی وقتها که درخواستی رو میفرستم، از سرور جوابی نمیاد ولی هروقتی که تاحالا از طریق مرورگر این کار رو انجام دادم و فایل php رو که اطلاعات رو از دیتابیس میخونه بارگزاری کردم به سرعت جواب میاد. حالا میخواستم دلیل این رو بدونم که چرا در مرورگر به خوبی عمل میکنه ولی در نرم افزار همیشه جواب نمیده و باید چندبار مجددا درخواستم رو تکرار کنم

دوست عزیز من دلیل این مشکل رو نمیدونم اما سوالی که برام پیش اومده اینه که چرا شما وب سرویست رو با ASP.NET نمینویسی که به صورت کامل با سی شارپ مچ باشه ؟ من تا حالا با وب سرویس های سی شارپ هیچ مشکلی نداشتم.



2 - من هنوز هاستی برای میزبانی وب سرویسم نگرفتم. اگه دوستان راهنمایی کنند که چه نوع هاستی مناسب کار منه ممنون میشم. البته من درحال حاظر سایتی ندارم و تنها استفاده ای که میخوام از هاست بکنم برای وب سرویس و سرویس گرفتن از طریق برنامه هست. احتمالا نیاز باشه که همزمان هزار نفر یک درخواست رو به وب سرویس بفرستن که البته حجم اطلاعات زیاد نیست ولی تعداد درخواست ها میتونه زیاد باشه.مثلا چیزی شبیه شبکه های اجتماعی که فقط متنی رو میخونن و یا مینویسن.

شبکه های اجتماعی به خاطر کوئری هایی که میگرن سر سرور به شدت شلوغ میشه. اگه فکر میکنی بیش از 500 درخواست همزمان خواهی داشت ( همزمان یعنی حدود 2000 تا کاربر آن لاین . چون همه با هم ارسال نمیکنن که!) باید VPS بگیری و بیخیال هاست بشی البته این قضیه نسبی هست و بر میگرده به کد هایی که نوشتی که اینکه چقدر رم و سی پی یو رو درگیر میکنه .



3 - بعضی از اطلاعات دریافتی ویا ثبت اطلاعات مهم هست و هرکسی نباید دسترسی داشته باشه و بتونه انجام بده مگر از طریق نرم افزار و با حساب کاربری خودش. میخواستم راهنمایی کنید که برای امنیت بیشتر و جلوگیری از دسترسی های غیرمجاز چه راهکاری وجود داره. چونکه اگر کسی آدرس وب سرویس رو بدونه و پارامترهای موردنیازش رو هم بدونه میتونه از طریق مرورگر هم اطلاعاتی رو ثبت کنه و یا دریافت کنه
دوست عزیز شما باید از الگوریتم های رمز نگاری دو طرفه استفاده کنی و نباید تابع وب سرویس رو مستقیما در اختیار بگیری . مثلا یه تابع داشته باشی دریافت درخواست که پارامترهاش رمز شده باشه و بین ایر رمز ها یه سیستم احراز باشه که درخواست های الکی رو بتونه بشناسه و جواب نده . در ضمن کلید ها باید هر روز تغییر کنه تا رمز ها لو نرن البته این ایده من هست و کاملا خلاقیتی هست و هر چقدر رو رمز نگاری کار کنی کم کار کردی !!!!! من یه سیستم اینطوری مثل چیزی که شما میخوای دارم کار مکیکنم و بخش رمز نگاریش تقریبا تکمیل شده . اگه سوالی داری بپرس

m.kahtooei
چهارشنبه 02 تیر 1395, 14:16 عصر
ممنون دوست عزیز
کمک بزرگی کردی
امیدوارم بتونم در موارد دیگه هم از راهنمایی هاتون استفاده کنم

حسین.کاظمی
چهارشنبه 02 تیر 1395, 17:41 عصر
من یه سیستم اینطوری مثل چیزی که شما میخوای دارم کار مکیکنم و بخش رمز نگاریش تقریبا تکمیل شده . اگه سوالی داری بپرس

سلام
در مورد رمز نگاری میشه با زبونی ساده و قابل درک بیان کنی که:
1- در حال حاضر چ الگوریتمی برای رمز نگاری مناسب است(بعضا می گند الگوریتم md5خوب نیست و بعضا عکس این رو میگند)؟
2-در مورد رمز نگاری رشته ها مشکلی ندارم ولی در مورد رمز نگاری اعداد و تاریخ و ..... ی توضیحی مختصری بدی ممنون میشم؟
3- قبل از ورود اطلاعات به بانک ازاطلاعاتی با رمز شدن داده ها مشکلی ندارم و با کوئری گرفتن و نمایش تک تک فیلدهای رمزنگاری شده در بانک هم مشکلی ندارم مشکلم اینجاست که مثلا اطلاعاتی را رمزشده در بانک ذخیره کردیم و الان میخام اون اطلاعات را در گرید ویو نشون بدم برای خارج شدن از رمز نگاری و نمایش اطلاعات چکار باید کنم؟؟؟؟
ممنون

m.kahtooei
چهارشنبه 02 تیر 1395, 21:22 عصر
آیا اگه فقط از https استفاده بشه و پارامترهای ارسالی و دریافتی بصورت مجزا رمزنگاری نشه بازهم امکان سواستفاده وجود داره؟یعنی دراینصورت کسی میتونه متوجه بشه که من چه پارامترهایی و با چه مقادیری به سمت سرور ارسال میکنم؟
مثلا من در سمت سرور منتظرم که دو مقدار a و b ازطرف درخواست دهنده ارسال بشه تا عملیاتی رو با توجه به مقادیر اون انجام بدم ، حالا درصورتی که از https استفاده بشه کسی میتونه متوجه بشه که نرم افزار مقادیری بنام a و b ارسال کرده؟اگه امکانش وجود داره برای جلوگیری از اون باید چکار کرد؟؟؟
ممنون

daffy_duck376
پنج شنبه 03 تیر 1395, 08:02 صبح
ممنون دوست عزیز
کمک بزرگی کردی
امیدوارم بتونم در موارد دیگه هم از راهنمایی هاتون استفاده کنم

خوشحال میشم کمکت کنم.


1- در حال حاضر چ الگوریتمی برای رمز نگاری مناسب است(بعضا می گند الگوریتم md5خوب نیست و بعضا عکس این رو میگند)؟

من از AES استفاده کردم چون تنها الگوریتیمی بود که تونستم تو دلفی و سی شار پ و جاوا و سوئیفت (زبان برنامه‌نویسی IOS) (برنامه من باید تو پلتفرم های مخلف کار کنه!!!!!) با دردسر کمتری جواب گرفتم و برنامه ای که نوشتم طوری طراحی شده که کلید های عمومی و اختصاصی اون هر روز توسیستم اتوماتیک عوض میشن در مورد بازدهی اونها چیز زیادی نمیدونم بهتره یه تحقیق کنید


2-در مورد رمز نگاری رشته ها مشکلی ندارم ولی در مورد رمز نگاری اعداد و تاریخ و ..... ی توضیحی مختصری بدی ممنون میشم؟
3- قبل از ورود اطلاعات به بانک ازاطلاعاتی با رمز شدن داده ها مشکلی ندارم و با کوئری گرفتن و نمایش تک تک فیلدهای رمزنگاری شده در بانک هم مشکلی ندارم مشکلم اینجاست که مثلا اطلاعاتی را رمزشده در بانک ذخیره کردیم و الان میخام اون اطلاعات را در گرید ویو نشون بدم برای خارج شدن از رمز نگاری و نمایش اطلاعات چکار باید کنم؟؟؟؟
ممنون

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


یا اگه فقط از https استفاده بشه و پارامترهای ارسالی و دریافتی بصورت مجزا رمزنگاری نشه بازهم امکان سواستفاده وجود داره؟یعنی دراینصورت کسی میتونه متوجه بشه که من چه پارامترهایی و با چه مقادیری به سمت سرور ارسال میکنم؟
مثلا من در سمت سرور منتظرم که دو مقدار a و b ازطرف درخواست دهنده ارسال بشه تا عملیاتی رو با توجه به مقادیر اون انجام بدم ، حالا درصورتی که از https استفاده بشه کسی میتونه متوجه بشه که نرم افزار مقادیری بنام a و b ارسال کرده؟اگه امکانش وجود داره برای جلوگیری از اون باید چکار کرد؟؟؟
ممنون

دوست عزیز هر چقدر کلاهت رو سفت تر بچسبی بهتره :قهقهه:. چون هیچ چیز امنی تو اینترنت وجود نداره هم رمز نگاری کن هم از https استفاده کن