PDA

View Full Version : سوال: قفل سخت افزاری روی پروژه ای که با ویژوال استودیو نوشته شده



Behnam6670
یک شنبه 31 شهریور 1392, 15:46 عصر
سلام دوستان حالتون خوبه؟
من یه پروژه نوشتم برای شرکتمون یه نرم افزار برای مدیریت خدمات پس از فروش هستش کار برنامه نویسیش و نصب و تستش تموم شده الان میخوایم یه قفل درستو حسابی روش اعمال کنیم ما این نرم افزار رو بصورت شبکه ای داریم استفاده میکنیم تو شرکت روی سرور نصبش کردیم و کلاینتای دیگه از Short Cut اون EXE استفاده میکنن .
حالا سوال اینجاست چجوری میتونیم مثلا یه کلید یا نمیدونم یه لایسنس برا نرم افزار تعریف بکنیم مثلا کلید روی فلشی چیزی باشه تا اون فلش نصب نشه به سرور کلاینتای دیگه نتونن از برنامه استفاده کنن؟
دوستان اگه راه حلی بنظرشون میرسه لطفا راهنماییم کنن ممنون میشم ازتون

shahryari
یک شنبه 31 شهریور 1392, 16:04 عصر
میتونی از قفل سخت افزاری یا نرم افزاری استفاده کنی اما.......

کلاینتای دیگه از Short Cut اون EXE استفاده میکنن .
یعنی پوشه نصب رو در سرور share کردی؟؟؟ :متعجب:
به نظر بنده :متفکر: با اینحساب امنیت نرم افزارت از بیخ مشکل داره

Behnam6670
یک شنبه 31 شهریور 1392, 16:34 عصر
میتونی از قفل سخت افزاری یا نرم افزاری استفاده کنی اما.......

یعنی پوشه نصب رو در سرور share کردی؟؟؟ :متعجب:
به نظر بنده :متفکر: با اینحساب امنیت نرم افزارت از بیخ مشکل داره

آره شیر کردیم

Behnam6670
یک شنبه 31 شهریور 1392, 16:36 عصر
آره شیر کردیم

خب برا اینکه ما این نرم افزار رو بصورت LAN میخوایم استفاده کنیم
پوشه ای که رو سرور هستش رو Share کردیم ولی دسترسی ارو محدود کردیم

Behnam6670
یک شنبه 31 شهریور 1392, 16:55 عصر
از دوستان لطف کنن جواب بدن من کماکان منتظر شما هستم

Behnam6670
یک شنبه 31 شهریور 1392, 17:24 عصر
از دوستان لطف کنن جواب بدن من کماکان منتظر شما هستم

از مهندسای محترم کسی راه حل بنظرش نمیرسه؟

NasimBamdad
یک شنبه 31 شهریور 1392, 21:09 عصر
اگه برنامه شما تحت شبکه است که باید نرم افزار در همه کلاینت ها نصب بشه و قفل شما به سرور متصل بشه و کلاینت ها قفل رو از سرور چک کنن

Behnam6670
دوشنبه 01 مهر 1392, 06:47 صبح
برنامه تحت شبکه اجرا میشه به این صورت که ما برنام رو روی سرور نصب کردیم و اس کیو ال سرورش رو هم نصب کردیم،یه Short Cut از EXE ای که روی سرور هستش به کلاینتا دادیم که هر کلاینتی با نام کاربری و کلمه عبور خودش میتونه وارد بشه و سند بزنه که باز همه اسناد به نام هون کاربری که وارد شده خورده میشه
یعنی کاربرا از یک EXE بصورت Remote با SQLServer ارتباط دارن البته با دسترسی که روی سرور برای کلاینتا تعریف میشه.حالا ما میخوایم یه مجوز استفاده از این نرم افزار بصورت فیزیکی یا سخت افزاری داشته باشیم بنظر دوستان چجوری باید این کار رو اعمال کنیم؟؟؟؟؟
اینکه برا هر کاربر یه کد یونیک داشته باشیم که مثلا از روی یه فلشی چیزی بخونه یا یه چیزی شبیه به این.اصلا آیا این روش شدنی هستش؟لطفا راهنمایی کنید

NasimBamdad
دوشنبه 01 مهر 1392, 08:16 صبح
عزیز من کار شما غیر اصولیه . برنامه ای که تحت شبکه هست یعنی Client , Server . شما باید یک نسخه از نرم افزار داشته باشید و روی تمام کلاینت هات نصب کنه . فقط SQL Server رو در سرور نصب می کنی ، بعد با کانکشن استرینگ مخصوص شبکه در برنامه ات استفاده می کنی و تحت شبکه کار می کنی

یه قفل سخت افزاری هم روی سرور به پورت USB می زنی و با کلاینت هات از طریق IP سرور اون قفل رو چک می کنی .

چرا این شیر بازی رو انجام دادی . امنیتت میشه هیچ ! راهت میشه دورش زد !

Behnam6670
دوشنبه 01 مهر 1392, 08:25 صبح
خب آخه چجوری بیایم رو هر سیستم نصبش کنیم؟مکافات میشه

Behnam6670
دوشنبه 01 مهر 1392, 08:36 صبح
کاربرا به هیچی جز یه شورت کات دسترسی ندارن از بابت اینکه به فایلا دسترسی داشته باشن اصلا امکان نداره

Behnam6670
دوشنبه 01 مهر 1392, 09:54 صبح
دوستان عزیز لطفا اگه کسی راهی بنظرش میرسه لطفا راهنمایی کنه.من منتظر دوستان مهندسم هستم

fjm11100
دوشنبه 01 مهر 1392, 10:38 صبح
درسته روش شما ایراد اساسی داره ولی دوستان هم جواب سوال را بدهند حالا نصیحت اشکال معماری بماند برای بعد پاسخ دادن
به دو روش میتونی قفل سخت افزاری برای برنامه ات ایجاد کنی
1- در آوردن شماره سریال از روی کانفیگ سخت افزار سرور که روش آسونیه (توی کد پروجکت و همینجا کدش ریخته) قطعاتی مثل هارد و مادربرد و cpu
2- قفل روی فلش که پیشنهاد میکنم بجای درگیر شدن در پیچیدگی اون از قفلهای ایرانی که امنیتشون هم بدک نیست استفاده کنی
البته بگم که بدلیل شکل برنامه های .net کلا حفظ امنیت برای جلوگیری از کپی خیلی سخته. بهتره از یک obfuscator استفاده کنی تا کدت برای خوندن سخت بشه
اما یک نصیحت برای معماری برنامه ات!
بهتره از وب سرویس استفاده کنی اینطوری درگیر سختی های برنامه تحت شبکه نوشتن هم نمیشی و خیلی خوب جواب میده و اکثر موارد ارتقا را میشه روی سرور انجام داد. البته این مال وقتیه که نخوای برنامه ات وبی باشه وگرنه که وب بیس کار کنی بهتره چون کلاینت هیچ نصبی نمیخاد

مهدی رحیم زاده
دوشنبه 01 مهر 1392, 10:46 صبح
با سلام خدمت شما دوست عزیز جناب Behnam6670
اجازه میخوام قبل از هر چیز از شما بخوام که از ارسال پست هایی فاید محتوای فنی خود داری کنید ، میدونم که میخوایید پست شما در اولیت قرار بگیره اما این راه ، راه مناسبی نیست . پیشنهاد میکنم جست و چو رو بیشتر انجام بدید
در مورد سوالتون هم ، همونطور که گفتید میتونید از یک قفل سخت افزاری استفاده کنید . قفل های سخت افزاری راهنمای استفاده هم دارند بنابراین مشکلی برای استفاده از اون نخواهید داشت.
هزینه زیادی هم نداره براتون
کار رو شروع کنید و اگر مشکلی داشتید مطرح کنید
موفق و پیروز باشید

Behnam6670
دوشنبه 01 مهر 1392, 10:58 صبح
با سلام خدمت شما دوست عزیز جناب Behnam6670
اجازه میخوام قبل از هر چیز از شما بخوام که از ارسال پست هایی فاید محتوای فنی خود داری کنید ، میدونم که میخوایید پست شما در اولیت قرار بگیره اما این راه ، راه مناسبی نیست . پیشنهاد میکنم جست و چو رو بیشتر انجام بدید
در مورد سوالتون هم ، همونطور که گفتید میتونید از یک قفل سخت افزاری استفاده کنید . قفل های سخت افزاری راهنمای استفاده هم دارند بنابراین مشکلی برای استفاده از اون نخواهید داشت.
هزینه زیادی هم نداره براتون
کار رو شروع کنید و اگر مشکلی داشتید مطرح کنید
موفق و پیروز باشید

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

Behnam6670
سه شنبه 02 مهر 1392, 06:46 صبح
اگه ما بخوایم قفل سخت افزاری اعمال کنیم بنظرتون بهتره یا قفل نرم افزاری؟

fjm11100
سه شنبه 02 مهر 1392, 08:24 صبح
بستگی به نوع قفل و هزینه پیاده سازی یا خرید داره. همچنین باید محدودیت های مشتری را هم در نظر گرفت (تمام پورتاش پر از قفل نشه!!!)

مهدی رحیم زاده
سه شنبه 02 مهر 1392, 10:08 صبح
اگه ما بخوایم قفل سخت افزاری اعمال کنیم بنظرتون بهتره یا قفل نرم افزاری؟
همونطور که دوستان گفتن بستگی به کاربرد شما داره اما در کل امنیت قفل های سخت افزاری بیشتره
موفق و پیروز باشید