PDA

View Full Version : مسئله ای بنام SA



Amir Taghavi
یک شنبه 20 اسفند 1385, 06:36 صبح
سلام

میشه کاری کرد که sa نتونه به db ما دسترسی داشته باشه.

متشکرم

AminSobati
یک شنبه 20 اسفند 1385, 08:09 صبح
نه دوست عزیزم

Amir Taghavi
یک شنبه 20 اسفند 1385, 17:48 عصر
پس با این حساب Security یعنی کشک!!!.

یعنی هیچ راهی وجود نداره که غیر از app خودم کسه دیگه ای نتونه از db استفاده کنه؟

AminSobati
یک شنبه 20 اسفند 1385, 21:43 عصر
اگر sa بعنوان یک کاربر خاص و رده بالا از اختیاراتش ساقط بشه، اونوقت مفهوم System Administrator میشه کشک!
من فکر میکنم به جای اینکه بلایی سر sa بیارین، بهتره اصل مشکل رو توضیح بدین تا یک راه حل منطقی براش پیدا کنیم.

حامد مصافی
یک شنبه 20 اسفند 1385, 22:06 عصر
گر sa بعنوان یک کاربر خاص و رده بالا از اختیاراتش ساقط بشه، اونوقت مفهوم System Administrator میشه کشک!
صد در صد

سلام

@ amir.taghavizadeh (http://www.barnamenevis.org/forum/member.php?u=12732) :
اگر قراره هیچ کس به اطلاعات دسترسی نداشته باشه مسئله امنیت در حد بالاتری بروز پیدا
میکنه.
اولاً که sa صاحب سیستم است و اصولاً نباید خطری برای برنامه کاربردی شما داشته باشد. (!)
دوماً در اینگونه مواقع همیشه از Encryption استفاده میشه
شما اطلاعات رو با الگوریتمی که خودت انتخاب می کنی یا می نویسی کد می کنی و در بانک ذخیره می کنی. اگر کارت رو درست انجام بدی کسی غیر از تو نمی تونه اطلاعات رو Decode کنه.
پس در صورتی که کسی اطلاعات رو ببینه مسئله خطرآفرینی جلوه پیدا نمی کنه.
راه سومی وجود نداره

Amir Taghavi
دوشنبه 21 اسفند 1385, 06:36 صبح
سلام دوستان


من فکر میکنم به جای اینکه بلایی سر sa بیارین، بهتره اصل مشکل رو توضیح بدین تا یک راه حل منطقی براش پیدا کنیم.

اصل مشکل اینه که من نمی خوام کسی غیر از app خودم بتونه از db استفاده کنه. چون در db یه سری اطلاعات عمومی هست که هرکسی می تونه db رو برداره و به app خودش attach کنه.


شما اطلاعات رو با الگوریتمی که خودت انتخاب می کنی یا می نویسی کد می کنی و در بانک ذخیره می کنی. اگر کارت رو درست انجام بدی کسی غیر از تو نمی تونه اطلاعات رو Decode کنه.

قرار نیست هیچ اطلاعاتی از طرف user در db وارد بشه و db اصطلاحا" Read-Only هستش.

حامد مصافی
دوشنبه 21 اسفند 1385, 09:27 صبح
به هر حال اطلاعاتی در پایگاه داده باید وارد شوند.
برای مثال اطلاعاتی که قبل از ارائه برنامه وارد می کنید.
می تونید این اطلاعات رو انکریپت کنید

AminSobati
دوشنبه 21 اسفند 1385, 23:16 عصر
کلاسیک ترین راه حل اینه که یک Instance مجزا از SQL Server برای خودتون روی سرور داشته باشین تا پسورد sa رو فقط خودتون بدونین و بس! همونطور که در اولین پست عرض کردم، نمیشه sa رو محدود کرد

Amir Taghavi
سه شنبه 22 اسفند 1385, 05:56 صبح
به هر حال اطلاعاتی در پایگاه داده باید وارد شوند.
برای مثال اطلاعاتی که قبل از ارائه برنامه وارد می کنید.
می تونید این اطلاعات رو انکریپت کنید

میشه بگین چور میشه این کار رو کرد؟

behzad_gh
سه شنبه 22 اسفند 1385, 07:49 صبح
میشه بگین چور میشه این کار رو کرد؟

http://barnamenevis.org/forum/showthread.php?p=317433#post317433

arshia_
سه شنبه 22 اسفند 1385, 09:46 صبح
همونطور که دوستان هم توضیح دادند بهترین راه رمز نگاری و کد کردن اطلاعات و ذخیره اونها در بانک است
اگر روش کد کردن شما خیلی خوب باشه هیچ کسی نمی تونه اونو به راحتی استفاده کنه
مگر روش ببرگردوندن اطلاعات کدشده رو بدونه

Amir Taghavi
چهارشنبه 23 اسفند 1385, 20:52 عصر
همونطور که عرض کردم اطلاعات قبلا" وارد شدند. میشه تو خود SQL اطلاعات رو Encrypt کرد؟
متشکرم.

حامد مصافی
چهارشنبه 23 اسفند 1385, 23:13 عصر
بنده هم عرض کردم
مسئله این نیست که اطلاعات کی وارد می شوند.
می تونید اطلاعات انکریپت شده رو وارد کنید.

Amir Taghavi
پنج شنبه 24 اسفند 1385, 06:33 صبح
بنده هم عرض کردم
مسئله این نیست که اطلاعات کی وارد می شوند.
می تونید اطلاعات انکریپت شده رو وارد کنید.

عزیز جون منم که گفتم قبول!. حالا میخوام بدونم چکار باید بکنم؟ چطور باید اطلاعات رو Encrypt کنم؟

hamed_bostan
پنج شنبه 24 اسفند 1385, 10:17 صبح
بنده هم عرض کردم
مسئله این نیست که اطلاعات کی وارد می شوند.
می تونید اطلاعات انکریپت شده رو وارد کنید.


منم منطورتون رو متوجه نمی شم . ممکنه دقیقا بگین چی کار کنژم که بتونیم اطلاعات رو توی دیتابیس encrypt و بعد واسه باز خونی decrypt کنیم؟

حامد مصافی
پنج شنبه 24 اسفند 1385, 10:35 صبح
سلام


@ hamed_bostan (http://www.barnamenevis.org/forum/member.php?u=9336) :
حامد خان فکر کنم یک اشتباه باعث شده منظور منو اشتباه برداشت کنی! اصلاً قرار نیست اطلاعات رو در دیتا بیس انکریپت کنیم بلکه اطلاعات انکریپت شده رو وارد دیتا بیس می کنیم.

@ amir.taghavizadeh (http://www.barnamenevis.org/forum/member.php?u=12732) :

البته بنده اینطور برداشت کردم که منظور شما از " چطور باید اطلاعات رو Encrypt کنم؟" طریقه وارد کردن اطلاعات انکریپت شده هست.
اگر منظورتون پیاده سازی متد های انکریپت و دیکریپت هست باید به عرض برسونم که این موضوع به زبان برنامه نویسی شما بستگی داره پس بهتره که در قسمت برنامه نویسی مربوط به خودتون بپرسید.

ببینید شما یک روش برای انکریپت یا باید طراحی پیدا کنید! (و همینطور برای دیکریپت)

حالا بقیه کار بستگی به نوع Data Entry شما داره.

فرض کنید داده های شما پیچیده هستند به همین دلیل یک برنامه Data Entry نوشتید. در اینصورت تنها کاری که باید انجام بدید اینه که متد انکریپت رو روی این برنامه اعمال کنید. یعنی برنامه قبل از وارد کردن اطلاعات رونها رو انکریپت کنه.

اگر شما داده ها رو مستقیماً در جداول بانک وارد می کنید بهتره که ابتدا مقدار انکریپت شده اطلاعات رو به دست بیارید سپس اونها رو وارد کنید. می تونید یک برنامه کوتاه برای این کار بنویسید. البته این روش پیشنهاد نمی شه و بهتره که از روش اول (Data Entry Program) استفاده کنید.

در ادامه کاملاً بدیهیه که برنامه نهایی شما باید قابلیت Decrypt داشته باشه.

Behrouz_Rad
پنج شنبه 24 اسفند 1385, 12:20 عصر
اگر منظورتون پیاده سازی متد های انکریپت و دیکریپت هست باید به عرض برسونم که این موضوع به زبان برنامه نویسی شما بستگی داره پس بهتره که در قسمت برنامه نویسی مربوط به خودتون بپرسید.

در SQL Server 2005 قابلیت Encrypt و Decrypt داد ها به شکل متقارن (Symmetric) و نامتقارن (Asymmetric) وجود داره که نیاز برنامه نویس رو در کد گذاری و کد گشایی دادها در سطح برنامه مرتفع می کنه.

موفق باشید.

hamed_bostan
پنج شنبه 24 اسفند 1385, 16:01 عصر
سلام

البته بنده اینطور برداشت کردم که منظور شما از " چطور باید اطلاعات رو Encrypt کنم؟" طریقه وارد کردن اطلاعات انکریپت شده هست.
اگر منظورتون پیاده سازی متد های انکریپت و دیکریپت هست باید به عرض برسونم که این موضوع به زبان برنامه نویسی شما بستگی داره پس بهتره که در قسمت برنامه نویسی مربوط به خودتون بپرسید.


نه منظور من نحوه encrypt اطلاعات داخل db بود . واسه ام جالب بود که خود دیتابیس بتونه اطلاعاتی رو که واردش مس کنیم encrypt و decrypt کنه واگرنه encrypt و decrypt کردن در خارج دیتابیس و متد های اون بارها و بارها در سایت بحث شده .

ضمنا بابت توضیح اقا بهروز . پی این کار هم در sql server 2005 ممکن شد؟روش خاصی داره؟

حامد مصافی
پنج شنبه 24 اسفند 1385, 16:07 عصر
در SQL Server 2005 قابلیت Encrypt و Decrypt داد ها به شکل متقارن (Symmetric) و نامتقارن (Asymmetric) وجود داره که نیاز برنامه نویس رو در کد گذاری و کد گشایی دادها در سطح برنامه مرتفع می کنه.

موفق باشید.

این دوستمون که نگفتند از نسخه 2005 استفاده می کنند

Behrouz_Rad
پنج شنبه 24 اسفند 1385, 16:28 عصر
این دوستمون که نگفتند از نسخه 2005 استفاده می کنند
و همچنین نگفتند که از SQL Server 2000 استفاده می کنند!


ضمنا بابت توضیح اقا بهروز . پی این کار هم در sql server 2005 ممکن شد؟روش خاصی داره؟
در مورد کلمات Symmetric و Asymmetric در حوزه ی SQL Server 2005 جستجو کن.
با ایجاد کلید های عمومی و شخصی برای عملیات Coding میسر میشه.
انشاا.. اگر عمری باقی بود پس از تعطیلات نوروز در این باره صحبت می کنم.

موفق باشید.

Amir Taghavi
جمعه 25 اسفند 1385, 07:25 صبح
در SQL Server 2005 قابلیت Encrypt و Decrypt داد ها به شکل متقارن (Symmetric) و نامتقارن (Asymmetric) وجود داره که نیاز برنامه نویس رو در کد گذاری و کد گشایی دادها در سطح برنامه مرتفع می کنه.

1.من تو BookOnline یه چیزایی پیداکردم. در ضمن من از Developer 2005 استفاده می کنم.

بنظر شما حالا که به اینجا رسیدیم بهتر نیست یه Topic جداگونه برای Encrypt-Decrypt ایجاد کنیم.