PDA

View Full Version : سوال: طراحی یه وب سرویس امن



idocsidocs
چهارشنبه 25 آبان 1390, 16:16 عصر
من می خوام توی سایتم یه وب سرویس بذارم، امنیتش برام مهمه. توی این وب سرویس، سایت های مختلف اطلاعات بازدیدهای خودشون رو به کمک آرایه پست برام می فرستن و من توی سایت خودم ذخیره می کنم و به سایتهای عضو یه سری خدمات می دم. این اطلاعات نباید بین راه گم بشن، تغییر کنن، دیده یا دزدیده بشن و ...

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

برای طراحی یه وب سرویس امن باید از کجا شروع کنم؟

peachcms
چهارشنبه 25 آبان 1390, 16:46 عصر
شما برای اینکه تمامی اسکریپت ها با هم یکسان باشند باید برنامه ای بنویسید که برای زمانی که اسکریپت نصب میشه زمان سرور شما رو دریافت کنه و با زمان سرور جاری چک بشه و اختلاف رو به دست بیارید و در فایل کانفیگ سیو کنین و برای timestamp استفاده کنین به همین راحتی اما ی مقدار خلاقیت و دقت میخاد که حالت های مختلف رو بتونین پوشش بدین

مثلا سرور جدید زمانش از سرور شما جلو تر باشه یا عقب تر که از timestamp کم کنین یا زیاد


تاپیک اشتباه شد :دی

Unique
چهارشنبه 25 آبان 1390, 17:34 عصر
کار با وب سرویس ها برای کاربران عادی سخته ، نمیدونم به چه کسانی میخواهین سرویس بدین اما این مهمه که کی داره سرویس میگیره !!!
برای امنیت بهترین کار اینه که بیاین و SSL بگیرین ، هزینش در مقابل امنیتش واقعا هیچ هستش ! اما راه های دیگه هم هست ، میتونید به صورت یک رشته بفرستین که با یک salt که فقط شما و مشتریتون میدونه hash شده و هر بار hash را چک کنین که مطمئن بشین همون رشته اولیه هستش !

idocsidocs
چهارشنبه 25 آبان 1390, 18:14 عصر
کار با وب سرویس ها برای کاربران عادی سخته ، نمیدونم به چه کسانی میخواهین سرویس بدین اما این مهمه که کی داره سرویس میگیره !!!
منظورتون کاربرهای عادی هست یا برنامه نویسها رو می گید؟ من می خوام یه سایت بنویسم که مدیران سایر سایتها بیان و توش ثبت نام کنن و بعد ماژولها رو بهشون بدم و بذارن توی سایتشون. یه مسئله امنیته و یه مسئله دیگه سازگار بودن سایت با انواع پلت فرمهاست.


برای امنیت بهترین کار اینه که بیاین و SSL بگیرین ، هزینش در مقابل امنیتش واقعا هیچ هستش ! اما راه های دیگه هم هست ، میتونید به صورت یک رشته بفرستین که با یک salt که فقط شما و مشتریتون میدونه hash شده و هر بار hash را چک کنین که مطمئن بشین همون رشته اولیه هستش !
هزینه SSL در ماه چقدره؟ در کل رشته سالت فکر نکنم مفید باشه، چون من نمی خوام داده ها رو هش کنم.

آیا با تابع sha1 می شه با یه متن رو به کمک سالت هش کرد و بعد اون رو دیکد کرد؟


مثلا سرور جدید زمانش از سرور شما جلو تر باشه یا عقب تر که از timestamp کم کنین یا زیاد
تایم استمپ و کار با زمان مربوط به اون تاپک هست :چشمک:

Net So
چهارشنبه 25 آبان 1390, 18:35 عصر
یه چند تا راه پیشنهاد میکنم دوست عزیز امیدوارم کمک تون کنه:قلب:

1 - اول اینکه برای هر کلاینت یه IP سرور Set کنید که که مثلا مشتری X همیشه باید از سروری با IP Y برای من اطلاعات رو بفرسته.
2 - اطلاعات رو بهتره به صورت XML بگیرید . اینو از این جهت میگم که خودم قبل همچین موردی رو تجربه کردم و این کار برای جلوگیری از یک مشکلات ناخواسته توصیه میشه.
3 - طرف مقابل با پارامتر هایی که ارسال میکنه اول خودش رو معرفی میکنه. بعد شما میتونید خیلی راحت برای هر کاربر یه Random KEY ست کنید که یه جورایی کار همون Salt رو انجام میده ولی Unique نیست. چرا اگر یکتا باشه ، مشتری X میتونه با Spoof کردن IP مشتری Z خودشو بجای اون جا بزنه
4 - اون KEY بالایی باید در هر تراکنش ، با سرور چک بشه
5 - SSL هم گزینه خیلی خوبی هست منتهی ابدا به تنهایی امنیت رو تضمین نمیکنه.
6 - برای اینکه بفمید اطلاعات به مقصد رسیدن میتونید بعد از Verify کردنشون یه پارامتر رو برگردونید ( درست مثل Port های بانکی )

idocsidocs
چهارشنبه 25 آبان 1390, 19:08 عصر
2 - اطلاعات رو بهتره به صورت XML بگیرید . اینو از این جهت میگم که خودم قبل همچین موردی رو تجربه کردم و این کار برای جلوگیری از یک مشکلات ناخواسته توصیه میشه.می شه در مورد تجربیاتی که در مورد ایجاد وب سرویس داشتید بیشتر توضیح بدید؟

5 - SSL هم گزینه خیلی خوبی هست منتهی ابدا به تنهایی امنیت رو تضمین نمیکنه.
در این مورد بیشتر توضیح بدید؟ چطور باید امنیت کار رو بالاتر ببرم؟

6 - برای اینکه بفمید اطلاعات به مقصد رسیدن میتونید بعد از Verify کردنشون یه پارامتر رو برگردونید ( درست مثل Port های بانکی )
از روش بانکها برای وریفای کردن حتما استفاده می کنم.

مشکل اصلی سرور هست، نمی دونم امنیت سرور رو چطور باید تعمین کنم؟ از چه سرویس دهنده ای استفاده کنم که علاوه بر پیکربندی و تنظیمات فنی سرور، پشتیبانهای سرور هم مطمئن باشن؟