• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
سوال درباره امنیت سایت | آیا این الگوریتم امنه؟
#1
باسلام خدمت کاربران گرامی.

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

1: واقعا نحوه ذخیره کردن سریال ها در پایگاه داده برای امنیت خیلی مهمه؟منظورم اینه که اگه سریال ها رو دقیقا همونطوری که هستن و بدون تغییر دادن در دیتابیس ذخیره کنم از لحاظ امنیتی مشکلی پیش میاد ؟در این کد از mysql استفاده میکنم.باز کردن دیتابیس برای هکر چقدر مشکله؟

2: من چون اطلاعی در مورد این قضیه ندارم فرض رو بر این گذاشتم که هکر بتونه محتوای دیتابیس من رو ببینه.و تنها راهی که به ذهنم رسید این بود که بیام سریال هارو تغییر بدم بعد تو دیتابیس ذخیره کنم.الگوریتم هایی که ازش برای هش کردن رمزعبور استفاده میکنیم خیلی خوبن . ولی بالاخره که باید سریال رو به کاربر بدم .و این الگوریتم ها هم که یه طرفه هستن پس استفاده از اینا رو بیخیال شدم .گفتم بیام خودم یه الگوریتم بنویسم که رشته رو رمز نگاری کنه و یه راهی هم برای بگرداندن رشته ها به حالت اولشون داشته باشه.گفتم اگه الگوریتم عمومی باشه هر کسی میتونه رشته هارو رمزگشایی کنه.به همین خاطر خودم یکی نوشتم.حالا سوالم اینه : آیا این روش صحیحه؟ راه بهتری برای ذخیره سازی و حفاظت از داده ها وجود داره؟پیشنهاد شما چیه؟

3: آخرین سوالم هم درباره امنیت الگوریتمیه که نوشتم . این الگوریتم رشته رو میگیره و بطور شانسی رشته رو رمزگذاری میکنه.
برای مثال من 5 دفعه متفاوت عبارت PHP5 رو باهاش رمزگذاری و نتایج زیر بدست اومد:
کد پی‌اچ‌پی:
//نتیجه رمزگذاری عبارت PHP5 در 5 دفعه متفاوت
"true[62566.3-9890.08!47430.7%46388.5)49406.7$48109.8]35051.9}"

"44728.6;[email protected][[email protected]@63147.4;68612.5]93498.8;"

"15321.3)74727.1([email protected]@17911.9(return!15523.1;62706.2?"

"12085.7*76512.2$26311%40155.1!87486.6}50258.7&68612.5_88003.1*"

"59212.7-25931.2$2933.24!97560.1)17911.9]94263.5:4673.53[50354.2_" 
ساختارش طوریه که هر دفعه یک رشته تصادفی میده ولی وقتی هر کدوم از عبارات بالا رو رمزگشایی کنیم دوباره کلمه PHP5 بدست میاد.
من بار اولمه الگوریتم رمزگذاری می نویسم و نمیدونم آیا این میتونه امنیت داده های دیتابیس رو تامین کنه یا نه؟آیا هکر میتونه با دیدن یکی از رشته ها رمزگشاییش کنه؟در صورتی که این موضوع نیاز به نمونه های بیشتری داره میتونید به آدرس زیر بروید.الگوریتم رمزنگاری و رمزگشایی رو بصورت جدا روی این صفحه قرار دادم:
به طور کلی میخوام داده هارو به شکل رمزنگاری شده وارد دیتابیس کنم و وقتی خرید کاربر انجام شد اونا رو رمزگشایی کنم و به کاربر نشون بدم.آیا این ساختار کار درستیه؟و آیا میتونم به این الگوریتم واسه این کار اتکا کنم؟
ممنون میشم اگه در این مورد بنده رو راهنمایی کنید.
با تشکر
  پاسخ
تشکر شده توسط :
#2
درود بر شما. زمانی که اسکریپت تون بشه دسترسی گرفت یا شل گذاری کرد. دسترسی به دیتابیس راهته.

اگر مهمه کار از مجحکم کاری عیب نمی کند.
  پاسخ
تشکر شده توسط :
#3
با سلام
1- حتما از encode / decode استفاده کن (همین کاری که داری میکنی)
2- فایلی که این کار رو داره انجام میده obfuscate کن


الگوریتمت چرا هر دفعه یک کد تولید میکنه ؟ هر بار یک salt یا رمز داری ؟
  پاسخ
تشکر شده توسط :
#4
میتونید از الگوریتم های رمز نگاری قابل برگشت مثل رایندال استفاده کنید، اینها امن هستند و امتحان خودشون رو پس دادن

رمزنگاری برای این امر کار خوبی هست، اما توجه داشته باشید که در درجه اول باید اصول مقابله با sql injection رو رعایت کنید، همچنین در دیتابیس user رو طوری تنظیم کنید که کاربر دیتابیس فقط از ip سایت خودتون، بتونه دسترسی پیدا کنه.
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان