PDA

View Full Version : راه کارهای افزایش امنیت در connection sring



soft-c
یک شنبه 05 مرداد 1393, 07:22 صبح
سلام
دوستانی که می توانند راهنمایی کنند :
راهکارهای افزایش امنیت در connection sring را کسی کار کرده است ؟

pezhvakco
سه شنبه 07 مرداد 1393, 08:09 صبح
سلام

چند روش را که خودم انجام میدهم می نویسم شاید به کار آید :

1) متن را به چند بخش نامفهوم تبدیل نمایید و در قسمت های مختلف برنامه مقدار دهی و برای ارتباط بارگذاری نمایید

2) متن را در فایل های نامشخص روی سیستم داشته باشید و پیش از اتصال آن ها را خوانده و بارگذاری نمایید

3) این روش را خودم بیش تر دوست دارم : بخش های کلیدی (نام کاربری ، رمز عبور) را در قفل سخت افزاری ذخیره نمایید تا 2 حالته امنیت برنامه داشته باشید

... روش بهتر از این .

پیروز بمونید

*** عیدتان مبارک و سال خوبی داشته باشید ***

یوسف زالی
سه شنبه 07 مرداد 1393, 13:16 عصر
البته وقتی شیئی مثل ADO نیاز به یک رشته داره، به هر حال در مرحله نهایی باید رشته بهش داده بشه و این یعنی باز توانایی کرک.
به نظر من برای مخفی کردن رشته، باید کلا از یک شی دیگه استفاده کنید، مثلا DCOM و یک لایه روی سرور داشته باشید، به این ترتیب باید اول به سرویس دهنده خودتون روی سرور با استفاده از COM یا Socket یا هر چیز دیگه ای کانکت بشید، احراز هویت بشید، و در صورت درست بودن همه چیز، اون شما رو به سرور اس کیو ال متصل کنه. راه طولانی ولی استانداردیه.
اشیای دیگه ای هم احتمالا موجودند که بدون نیاز به لایه اضافی، بتونن اتصال کد شده رو براتون فراهم کنند. ولی باز روی سرور نیاز به نصب بودن برنامتون داره.

Nima NT
سه شنبه 07 مرداد 1393, 19:57 عصر
رمزنگاری رشته اتصال + محافظت از فایل اجرایی توسط پروتکتور قوی = امنیتی در حد متوسط به بالا

soft-c
پنج شنبه 09 مرداد 1393, 12:18 عصر
البته وقتی شیئی مثل ADO نیاز به یک رشته داره، به هر حال در مرحله نهایی باید رشته بهش داده بشه و این یعنی باز توانایی کرک.
به نظر من برای مخفی کردن رشته، باید کلا از یک شی دیگه استفاده کنید، مثلا DCOM و یک لایه روی سرور داشته باشید، به این ترتیب باید اول به سرویس دهنده خودتون روی سرور با استفاده از COM یا Socket یا هر چیز دیگه ای کانکت بشید، احراز هویت بشید، و در صورت درست بودن همه چیز، اون شما رو به سرور اس کیو ال متصل کنه. راه طولانی ولی استانداردیه.
اشیای دیگه ای هم احتمالا موجودند که بدون نیاز به لایه اضافی، بتونن اتصال کد شده رو براتون فراهم کنند. ولی باز روی سرور نیاز به نصب بودن برنامتون داره.
این یعنی در اصل همون برنامه نویسی 3 لایه؟
با تشکر از نظرات همه که واقعا کمک خیلی زیادی کرد .

joker
پنج شنبه 09 مرداد 1393, 13:34 عصر
رمزنگاری رشته اتصال + محافظت از فایل اجرایی توسط پروتکتور قوی = امنیتی در حد متوسط به بالا

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

اگه چیزی مثل ssl برای ارتباط دیتابیس بود خوب بود... کسی چیزی سراغ داره ؟

Delphi Coder
پنج شنبه 09 مرداد 1393, 15:39 عصر
عمده نگرانی من اسنیف پکتهای شبکه هست
خطر اصلی اینجاستاتفاقا از اون بالا که شروع کردم به خوندن تاپیک منم دقیقا به همین موضوع فکر میکردم. قفل سخت افزاری و PE Protector و هزار تا پیچیدگی و کله ملق دیگه هم در کار باشه باز هم در نهایت Plain Text از طریق socket متصل میشه. البته من از روشهای دیگر اتصال به SQL Server زیاد اطلاعاتی ندارم اما وقتی صحبت از Connection String میشه ناخود آگاه ذهن من سمت ADO میره که اونهم از طریق Socket اطلاعات رو منتقل میکنه.

joker
پنج شنبه 09 مرداد 1393, 16:19 عصر
ظاهرا با یک true-false حل میشه !
تست کنم روی ado دلفی ، فردا خبرشو میدم... ایشالا اوکی باشه
http://technet.microsoft.com/en-us/library/bb879949(v=sql.110).aspx

BORHAN TEC
پنج شنبه 09 مرداد 1393, 19:33 عصر
اگه چیزی مثل ssl برای ارتباط دیتابیس بود خوب بود... کسی چیزی سراغ داره ؟

چنین چیزی وجود داره. بارها و بارها در این خصوص صحبت کردم. برای افزایش امنیت بهتره که برنامه ها به صورت Multi-Tier ساخته شوند. یعنی طوری نباشه که برنامه ما مستقیم به یک RDBMS که در یک کامپیوتر دیگه قرار داره متصل بشه. برای این کار میشه از DataSnap یا ابزارهای دیگه استفاده کرد. به این صورت که کلاینت با برنامه سرور در ارتباطه، که برنامه سمت سرور هم به دیتابیس متصله. اتصال بین برنامه کلاینت و سرور میتونه موارد امنیتی رو شامل بشه و اطلاعاتی که رد و بدل میشن میتونند توسط الگوریتمهای مختلف کد بشن که قابل اسنیف نباشند. برای کسب اطلاعات بیشتر در مورد Filter ها در DataSnap تحقیق کنید.

یوسف زالی
پنج شنبه 09 مرداد 1393, 19:47 عصر
این یعنی در اصل همون برنامه نویسی 3 لایه؟

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

BORHAN TEC
پنج شنبه 09 مرداد 1393, 20:25 عصر
بله.
در این حالت پکت ها کاملا در استاندارد شما تعریف می شند. سرویسی هم که ارتباط به اس کیو ال داره از خارج مخفی هست و بهش دسترسی وجود نداره.
انگار شما به سایت یک request بدی و سایت در دی بی خودش سرچ کنه، فقط به جای سایت با یک سرویس طرف هستید.
به این میگن برنامه نویسی چند ردیفه یا Multi-tier. انتصاب کلمه چند لایه به این نوع برنامه ها درست نیست.

یوسف زالی
پنج شنبه 09 مرداد 1393, 20:57 عصر
انتصاب کلمه چند لایه به این نوع برنامه ها درست نیست.

:لبخند:
معمولا در خیلی موارد این دو همردیف هم می شند.
اما درسته، مولتی تایر با مولتی لیر تفاوت داره.

برنامه نویسی چند لایه ای که در کار مصطلح شده، منظور همون چند ردیفه هست.

soft-c
پنج شنبه 09 مرداد 1393, 22:19 عصر
به این میگن برنامه نویسی چند ردیفه یا Multi-tier. انتصاب کلمه چند لایه به این نوع برنامه ها درست نیست.
فرق این دو برنامه چیه؟

BORHAN TEC
جمعه 10 مرداد 1393, 11:56 صبح
فرق این دو برنامه چیه؟

اگه به صورت خیلی ساده بخوام بگم فرقشون اینه:
در برنامه نویسی چند لایه قسمت های مختلف یک برنامه به صورت منطقی از هم جدا می شوند. اینکه میگیم به صورت منطقی یعنی اینکه یک برنامه می تواند به صورت چند لایه باشد ولی فقط از یک فایل اجرایی تشکیل شده باشد! ولی در برنامه نویسی چند ردیفه، بخشهای مختلف به صورت فیزیکی از هم جدا می شوند به عبارتی ساده حاصل یک برنامه که به صورت چند ردیفه ایجاد شده باشد شامل بیش از یک فایل اجرایی (و یا هر فایلی که به نوعی حالت اجرایی به خود بگیرد و کاری را انجام دهد مثل dll و یا موارد دیگر) است، یعنی یک قسمت می تواند در سمت سرور و یک قسمت می تواند در سمت کلاینت اجرا شود. در برنامه های چند ردیفه معمولاً قسمت سمت سرور ارتباط بین پایگاه داده و برنامه سمت کلاینت را برقرار می کند که می تواند موارد امنیتی خوبی را هم شامل شود.
این فقط یک توضیح کلی بود که اصلی ترین تفاوت را در آن بیان کردم. طبیعی است که برای کسب اطلاعات بیشتر در این موارد باید بیشتر تحقیق کنید.

rezamahdizadeh
جمعه 31 مرداد 1393, 18:23 عصر
آیا برای ارتباط بین دو برنامه که از لحاط فیزیکی مسافت زیادی مثلا 30 کیلومتر دارند بهترین کار چیست؟ بستر ارتباطی بین آن دو برنامه اینترنت است.