برای طراحی بعضی بخش های سیستم های MIS می تونید از دیتابیس استفاده نکنید.

برای مثال برای ذخیره نامه های اداری میتونید پس از ورود اطلاعات اون هارو به صورت PDF یا html یا هر چیز دیگری ذخیره کنید و اطلاعات اون ها رو مثلا تاریخ آدرس و ... رو به دیتابیس بدهید.

به خاطر داشته باشید که:

- مهاجم ممکن است به هر وسیله (Sql injection -database bug-...) بتواند به اطلاعات موجود در دیتابیس دسترسی پیدا کند.

- مهاجم ممکن است با آدرس دهی دقیق فایل به محتویات آن دسترسی پیدا کند

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

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


جمع بندی:

پس از دریافت ورودی آن را در یک فایل ذخیره کنید

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

می تونید بعضی از اطلاعات فایل رو در دیتابیس ذخیره کنید.(مثلا آدرس فایل)

در فراخوانی اطلاعات پس از اعتبار سنجی فایل را دوباره از کلاس رمز نگاری خود عبور دهید تا قابل خواندن شود

اطلاعات خوانده شده از فایل را به کاربر نمایش دهید ولی خود فایل رو به صورت رمز نگاری شده نگه دارید.

نکته:
عمرا از اسم های قابل حدس زدن برای ذخیره فایل ها استفاده نکنید مثلا 2005-8-2.pdf
به هر حال جلوگیری از دسترسی مهاجمین حتی به فایل ها کد شده و غیر خوانا بهتر از به اشتراک گذاشتن آن هاست

نکته:
بسته به نیاز برنامه این روش یکی از روش هاییست که می تونید با ترکیب اون با ساختار کلی برنامتون ازش استفاده کنید و فراموش نکنید که به هر حال استفاده دیتابیس اختیارات زیادی رو در اختیارتون میذاره بنابراین برای طراحی این برنامه ها و الگوریتم ها دقت کنید.به قول یکی از برادران
thnik first,code later :mrgreen:

نکته:
برای بعضی کارها از جمله همین یک بار در زندگیتون یک کلاس مناسب طراحی کنید و تا عمر داری ازش استفاده کنید ; اگر نیاز به طراحی مجدد یا گسترش بود حداقل یک نمونه دارید

نکته:
اگر سورس کلاس رمز نگاریتون لو بره ...(دیگه هیچی)
می تونید از نرم افزار هایی مثل zend encoder برای اطمینان از امنیت سورس هاتون استفاده کنید.
(نمی دونم برای زبان های غیر PHP هم چنین چیزی هست یا نه)

نکته:
تمامی این مقالات و گفتار های موزون صرفا برای به اشتراک گذاری روش های مختلف برای ایمن سازی برنامه های تحت وب است.خودتون رو محدود به این ها نکنید.