بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

امنیت وب سرویس

مدیریت گفتگو
Pouya Asgharnejad Tehran 10 سال پیش
آخرین تغییر: 10 سال پیش

با سلام.

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

و اما مشکل من:

اطلاعات ( رمز و Hash ها ) باید بصورت پارامتر به سرور فرستاده بشوند. ارسال پارامتر هم به دو روش GET و POST صورت میگیرد. پس پارامتر ها یا در URL یا در بطن Request ارسال میشوند. به لطف ابزار های ردیابی URL، دیگر کار مشکلی نیست که URL و پارامتر ها کشف بشوند و سرویس ما عملا برای فرد " هکر و متجاوز " باز می شود.

مثال عملی:

مثلا نام پکیج اپلیکیشن اندروید من "com.example.app" هست و به آدرس "example.com/webservice/data/com.example.app/ojfgfd4og8hf5g2o" درخواست میفرستم ( عبارت "ojfgfd4og8hf5g2o" یک Hash جهت اطمینان بیشتر است )

خب حالا هکر ( حتی آماتور ) با استفاده از نرم افزار های ردیابی  ( که معرفی آنها کار صحیحی نیست )  آدرس را کشف کرده ( حتی پارامتر های POST ) و اینگونه وب سرویس ما توسط دیگران قابل استفاده میشود.

به نظر شما چگونه باید امنیت در وب سرویس را تا حد قابل قبولی افزایش داد؟

نظرات

کاشی زاده 10 سال پیش
دقیقا همینطور است ، برای رمزنگاری روی داده های ارسالی روش های زیادی هست . اما به هر حال هر کدوم به نوعی قابل هک شدن هستند ، بهتره علاوه بر اینکه URLرو امن میکنید باتی هم بنویسید که دسترسی های مشکوک رو مسدود کنه ، مثلا تعداد ریکوست های زیاد از سمت یک IP در زمان مشخص به معنی فعالیت باتی برای بدست آوردن اطلاعات شماست .
صحبت شما درسته؛ ولی اصلا برای فرد متجاوز هیچ زحمت و سختی برای پیدا کردن آدرس وجود نداره و به راحتی هر چه تمام تر ( حتی از خود برنامه نویس webservise هم راحتر ) میتونه از اطلاعات استفاده کنه!
کاشی زاده 10 سال پیش
کشف URL مسئله مهمی نیست ، انکریپت شدن داده های ارسالی و ارسال کلید به شکلی که نشه هک کرد مهم هست .
شما روشی مناسب برای Encrypt داده های JSON پیشنهاد میکنید؟

پاسخ‌ها 1

alisherafat01 10 سال پیش

چند نکته در مورد امنیت وب سرویس:

1- شما برای شناسایی کاربرتون یا همون Authentication نباید username و password کاربران رو به سرورتون ارسال کنید فقط لازمه که با هر درخاست یه token به صورت پارامتر  ارسال کنید که این token برای هر کاربر منحصر به فرد است و در دیتابیس سرور ذخیره شده و اینجوری میفهمید که چه کاربری داره به شما درخاست میده و دیگه کسی غیر از کاربران شما نمیتونه براتون مزاحمت ایجاد کنه.

2- برای امنیت در خصوص اطلاعات و پارامتر هایی که با سرور ردوبدل میکنید بهترین گزینه میتونه این باشه که گواهینامه SSL رو برای سایتتون تهیه کنید -- در این صورت اطلاعات به صورت رمز نگاری شده مبادله میشه

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .