نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
نقل قول:
نوشته شده توسط
mazoolagh
تا اساتید بیان و جواب بدن:
قاعده کلی این هست که دیتا که توسط مشتری به دیتابیس افزوده میشه برای خودش هست و برنامه نویس نمیتونه اون رو گروکشی کنه (یعنی قفل بگذاره و در برابرش پول و ... بخواد) ولی داده هایی که خود برنامه نویس تهیه کرده میتونه برای خودش نگه داره.
البته قفل گذاشتن رو دیتابیس بمنظور حفاظت از دیتا در برابر دستکاری از سوی اشخاص (و خارج از محیط برنامه) امر درست و کاملا مرسوم هست.
قطعا خریدار باید مطلع باشه از این وضعیت و توجیه باشه که دلیل اون چی هست. این موضوع میتونه در قرارداد خرید یا پشتیبانی منعکس بشه.
اگر قرارداد از نوع خرید یک مرحله ای و بدون پشتیبانی هست که قطعا باید پسورد به مشتری داده بشه بدون بروبرگرد.
اگر قرارداد پشتیبانی هم هست (تقریبا همه موارد اینگونه است) معمولا یک ماده گنجانده میشه مبنی بر اینکه پشتیبانی منوط به محفوظ بودن پسورد هست، ولی پسورد در یک پاکت مهر و موم تحویل خریدار (یا نزد شخص ثالث مورد اعتماد طرفین) میشه و تا زمانی که محفوظ هست پشتیبانی ادامه داره.
چون عرف قرارداد پشتیبانی این هست که هزینه مدت قرارداد تماما پیش پرداخت هست، اطمینان کافی برای طرفین فراهم میشه.
*************************************************
و بازهم سلام ....
و یک سئوال ..البته نظرات و اخلاقیات شما برای من جالب وکاملا قابل احترام هست البته اگر در جامعه فرهنگ سازی بشه ..اما....
1- آیا شما برای نرم افزار هایی که خودتون تولید می کنید همین کارا رو انجام میدین ؟
2-اگر نرم افزار تجاری ساخته شده باشه و بصورت سی دی در بازار فروخته بشه بازم این فرایندی که میفرمایید صحت عمل داره ؟
3-کسی تا حالا شده از بازار نرم افزار مثلا حسابداری بخره و شرکت تولید کننده رمز دیتا بیس رو تو سی قرار داده باشه ؟ مثلا فکر کنید شرکت همکاران سیستم یک نرم افزار میفروشه 40 میلیون تومن و به نظر شما میاد و رمز دیتا بیس رو به ما میده واقعا ؟
برای من خیلی جالب شده که به نظر شما که خبره این کار هستین دنیای نرم افزار باید چگونه باشد ....و در واقعیت چگونه هست ؟
همه اینا رو پرسیدم که به جواب یک سئوال برسم آیا تولید کنندگان نرم افزار تا حالا داشتن سر ملت شیره میمالیدن ؟
هفته پیش شرکت منطق برای یک شرکتی که توکن برنامش خراب شده بود یک میلیون گرفت توکن مجدد داد ......بعنوان قفل سخت افزاری که بصورت منطقی قطعه فیزیکی است برای صحت اعتبار خریدار و ارتباط بین feو Be .......و تاجایی که من تحقیق کردم توکن اگر خراب بشه با 20 هزار تومن عوض میشه نه یک ملیون تومن
خیلی ممنون میشم این موضوع رو باز کنید یا تاپیک مجزا بزنید .. و روشن بفرمایید که واقعا موضوع چیه
ممنونم
و نکته اخر اینکه وقتی برنامه در محیطی کاملا امنیتی داره کار می کنه و اطلاعات ثبت شده داخل دیتا بیس بحث امنیتی داره بازم باید همه رمز ها رو تقدیم کنیم به خریدار ؟
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
نقل قول:
نوشته شده توسط
narpco
*********************************************
جناب روز بخیر
یه موضوعی برای من خیلی سئوال شد با این فرمایش شما .....
اگر درست فهمیده باشم البته ....مورد 1----یعنی شما میفرمایید وقتی یک برنامه ای که با اکسس ساخته شده رو روی یک سیستم نصب می کنیم هیچ راهی برای کپی کردن و استفاده کردنش در همون سیستم وجود نداره ؟ حتی با تغییر نام ؟
منظور حضرتعالی همینه ؟
یا منظور شما اینه که هر کاری هم انجام بدیم بازم براحتی کپی میشه ؟
روز شما هم خوش
منظور این هست که روش های مبتنی بر فایل سیستم کلا محکوم به شکست هست.
من همون ابتدای تاپیک گفتم که یک روش مؤثر هاردکد کردن اسم و مشخصات مشتری در سربرگ (یا واترمارک) خروجی هاست، این هم به شرطی هست که این خروجی ها در خارج از مجموعه نیاز باشه (مثلا فاکتور یا کارنامه و گزارش پزشک و ...) .
حالا اگر خروجی ها فایل باشن (بیمه و ...) که توسط خریدار قابل ویرایش هست این هم فایده ای نداره.
باید به روش های دیگه ای فکر کنین - به این صورت که بخشی از دیتا حیاتی (یا دیتا کنترلی) رو در جایی غیر از برنامه و یا دیتابیس ذخیره کنین (و باز هم نه در فایل) .
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
نقل قول:
نوشته شده توسط
narpco
*************************************************
و بازهم سلام ....
و یک سئوال ..البته نظرات و اخلاقیات شما برای من جالب وکاملا قابل احترام هست البته اگر در جامعه فرهنگ سازی بشه ..اما....
1- آیا شما برای نرم افزار هایی که خودتون تولید می کنید همین کارا رو انجام میدین ؟
2-اگر نرم افزار تجاری ساخته شده باشه و بصورت سی دی در بازار فروخته بشه بازم این فرایندی که میفرمایید صحت عمل داره ؟
3-کسی تا حالا شده از بازار نرم افزار مثلا حسابداری بخره و شرکت تولید کننده رمز دیتا بیس رو تو سی قرار داده باشه ؟ مثلا فکر کنید شرکت همکاران سیستم یک نرم افزار میفروشه 40 میلیون تومن و به نظر شما میاد و رمز دیتا بیس رو به ما میده واقعا ؟
برای من خیلی جالب شده که به نظر شما که خبره این کار هستین دنیای نرم افزار باید چگونه باشد ....و در واقعیت چگونه هست ؟
همه اینا رو پرسیدم که به جواب یک سئوال برسم آیا تولید کنندگان نرم افزار تا حالا داشتن سر ملت شیره میمالیدن ؟
هفته پیش شرکت منطق برای یک شرکتی که توکن برنامش خراب شده بود یک میلیون گرفت توکن مجدد داد ......بعنوان قفل سخت افزاری که بصورت منطقی قطعه فیزیکی است برای صحت اعتبار خریدار و ارتباط بین feو Be .......و تاجایی که من تحقیق کردم توکن اگر خراب بشه با 20 هزار تومن عوض میشه نه یک ملیون تومن
خیلی ممنون میشم این موضوع رو باز کنید یا تاپیک مجزا بزنید .. و روشن بفرمایید که واقعا موضوع چیه
ممنونم
و نکته اخر اینکه وقتی برنامه در محیطی کاملا امنیتی داره کار می کنه و اطلاعات ثبت شده داخل دیتا بیس بحث امنیتی داره بازم باید همه رمز ها رو تقدیم کنیم به خریدار ؟
سلام مجدد
لطفا یک تاپیک مستقل و با عنوان مناسب برای این موضوع ایجاد کنید تا دوستان بیشتری درگیر بشن.
تا اون موقع در جریان باشین که از بابت قفل نبودن دیتابیس (دست کم در مورد شرکت همکاران سیستم و چند شرکت مشابه دیگه)، به شما اطمینان میدم هیچکدومشون جلوی دسترسی خریدار به دیتابیس رو نمیگیرن.
در واقع تامین امنیت دیتابیس رو بعهده خریدار گذاشتن (امنیت شبکه و sql سرور) و خودشون رو درگیر این مسائل نمیکنن.
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
نقل قول:
نوشته شده توسط
mazoolagh
دو مورد هست که دوباره یادآوری میکنم چون مطالب نادرستی اینجا مطرح شده و ممکنه برای کسانی این شبهه پیش بیاد که واقعا اینکار شدنی هست!
1- مطلقا هیچ راهی نیست که نشه نسخه های متفاوت از یک برنامه اکسس (حتی با fe-be) رو روی یک هارد نگه داشت و هر نسخه رو در زمان نیاز اجرا کرد، حتی با یک بچ اسکریپت ساده میشه فرآیند رو اتوماتیک کرد.
این موردی هست که هر کسی کوچکترین آشنایی با فایل سیستم داشته باشه میدونه و حتی بهش هم فکر نمیکنه - البته برای کسانی که این دانش ابتدایی رو ندارن این توهم ممکنه پیش بیاد که راهی پیدا کردن ولی اعتبار راه تا جایی هست که مشتری از خودشون کم سوادتر باشه.
2- موضوع اخلاق مهندسی (و وجدان کاری) خیلی مهم هست و اگر برنامه ای رفتار غیرمتعارف داره باید حتما خریدار آگاه باشه - بطور کلی امکانات و محدودیتها باید مشخص باشه.
نقل قول:
نوشته شده توسط
mazoolagh
منظور این هست که روش های مبتنی بر فایل سیستم کلا محکوم به شکست هست.
من همون ابتدای تاپیک گفتم که یک روش مؤثر هاردکد کردن اسم و مشخصات مشتری در سربرگ (یا واترمارک) خروجی هاست، این هم به شرطی هست که این خروجی ها در خارج از مجموعه نیاز باشه (مثلا فاکتور یا کارنامه و گزارش پزشک و ...) .
حالا اگر خروجی ها فایل باشن (بیمه و ...) که توسط خریدار قابل ویرایش هست این هم فایده ای نداره.
باید به روش های دیگه ای فکر کنین - به این صورت که بخشی از دیتا حیاتی (یا دیتا کنترلی) رو در جایی غیر از برنامه و یا دیتابیس ذخیره کنین (و باز هم نه در فایل) .
سلام جناب mazoolagh
به نکاتی تخصصی در پست های 48 و 52 این تاپیک اشاره کرده این که قطعاً برای من و بعضی از عزیزان دیگه قابل هضم نمی باشد
ممنون میشم چنانچه وقت کردین در ارتباط با موارد زیر ساده تر توضیح بفرمائید :
1-منظور از fe-be چیست ؟ آیا منظور همان حالت Front End / Back End است یا چیز دیگه ؟
2- مطلقا هیچ راهی نیست که نشه نسخه های متفاوت از یک برنامه اکسس (حتی با fe-be) رو روی یک هارد نگه داشت و هر نسخه رو در زمان نیاز اجرا کرد، حتی با یک بچ اسکریپت ساده میشه فرآیند رو اتوماتیک کرد.
3- روش های مبتنی بر فایل سیستم کلا محکوم به شکست هست
با تشکر
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
نقل قول:
نوشته شده توسط
atf1379
سلام جناب
mazoolagh
به نکاتی تخصصی در پست های 48 و 52 این تاپیک اشاره کرده این که قطعاً برای من و بعضی از عزیزان دیگه قابل هضم نمی باشد
ممنون میشم چنانچه وقت کردین در ارتباط با موارد زیر ساده تر توضیح بفرمائید :
1-منظور از fe-be چیست ؟ آیا منظور همان حالت Front End / Back End است یا چیز دیگه ؟
2- مطلقا هیچ راهی نیست که نشه نسخه های متفاوت از یک برنامه اکسس (حتی با fe-be) رو روی یک هارد نگه داشت و هر نسخه رو در زمان نیاز اجرا کرد، حتی با یک بچ اسکریپت ساده میشه فرآیند رو اتوماتیک کرد.
3- روش های مبتنی بر فایل سیستم کلا محکوم به شکست هست
با تشکر
سلام و روز خوش
1- بله، منظور همون هست که اشاره کردین.
2- منظور این هست که میشه عملیات تغییر نام فایل ها و ... در یک batch file (که مجموعه ای از دستورات DOS هست که پشت سر هم و خودکار اجرا میشن) ریخت و حتی پارامتر هم بهش داد.
فرضا اگر یک نسخه برنامه برای شرکت a و نسخه دیگه برای شرکت b هست، میتونیم اسم این دو شرکت رو بعنوان پارامتر به بچ فایل پاس کنیم و تغییر نام فایلها و ... با توجه به این پارامتر انجام بشن.
3- منظور این هست که خواسته استارتر تاپیک با روشهایی که اینجا اومده شدنی نیست.
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
نقل قول:
نوشته شده توسط
mazoolagh
سلام و روز خوش
1- بله، منظور همون هست که اشاره کردین.
2- منظور این هست که میشه عملیات تغییر نام فایل ها و ... در یک batch file (که مجموعه ای از دستورات DOS هست که پشت سر هم و خودکار اجرا میشن) ریخت و حتی پارامتر هم بهش داد.
فرضا اگر یک نسخه برنامه برای شرکت a و نسخه دیگه برای شرکت b هست، میتونیم اسم این دو شرکت رو بعنوان پارامتر به بچ فایل پاس کنیم و تغییر نام فایلها و ... با توجه به این پارامتر انجام بشن.
3- منظور این هست که خواسته استارتر تاپیک با روشهایی که اینجا اومده شدنی نیست.
************************************************** ******************************
به لحاظ منطق ریاضی کامپیوتر حرف شما کاملا صحیح است
سئوالی که مطرح میشه و برای من هم بحث جالبی شده با توجه به تجربه و مهارت شما
چه راه حلی رو پیشنهاد میفرمایید که ما از این دردسر خلاص شیم
اگر امکانش باشه فایل مثال و نمونه ای هم برای فهم بیشتر موضوع بفرستین که عالی میشه ....
*** این موضوع واقعا موضوع شوخی برداری نیست .....یک برنامه تولیدی بین 6 ماه تا یکسال وقت ادم رو میگیره حالا اگر به مشکل غیر قابل حلی برنخوریم .....اینه که امنیت برنامه واقعا موضوع مهمی است
سواد بنده به شخصه در حد آموزش هایی است که در تمام این سالها در نت و کتاب ها موجود بوده که بحث امنیت تنها در حد رمز گذاری روی فایل ها و محیط وی بی و جدا کردن be-fe هست نهایتا یک فرم لاگین مجزا و کنترل سخت افزاری موقع بالا اومدن برنامه ---در سورس های خارجی هم خیلی بیشتر از این چیزی من پیدا نکردم ....
با سپاس از شما ....
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
نقل قول:
نوشته شده توسط
narpco
************************************************** ******************************
چه راه حلی رو پیشنهاد میفرمایید که ما از این دردسر خلاص شیم
یک سناریو امتحان شده این هست که به جای درگیر کردن خودمون با کاربر و سیستمش، از دیتا کنترلی استفاده کنیم.
منظور از دیتا کنترلی، یک یا چند مقدار بر اساس دیتا هست که کاربر وارد دیتابیس میکنه.
فرضا یک سیستم حسابداری داریم، دیتا کنترلی میتونه یک رکورد شامل فیلدهای زیر باشه:
- مشخصات خریدار
- تعداد سرفصل های کل
- تعداد سرفصل های معین
- تعداد سرفصل های تفصیلی
- تعداد اسناد ثبت شده
- تعداد کل رکوردها
زمانی که برنامه برای اولین بار روی سیستم مشتری اجرا میشه، دنبال این مقادیر میگرده (فعلا به اینکه کجا باید باشه کاری نداریم) و چون مقدار همه این ها 0 هست (یا اینکه اصلا وجود نداره) و در ضمن دیتابیس هم خالی هست، پس برنامه فرض رو بر مجاز بودن برنامه و دیتا میگذاره و اجازه ادامه کار رو میده.
با آپدیت شدن دیتابیس، اطلاعات کنترلی هم متناظر با اون آپدیت میشن (یا یکجا و هنگام بسته شدن برنامه)
دفعات بعدی که برنامه اجرا میشه، ابتدا این دیتا کنترلی رو با دیتابیس مقایسه میکنه و اگر یکی بود اجازه ادامه کار رو میده وگرنه برنامه رو میبنده (اینجا میشه دیتابیس رو ریست هم کرد!)
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
حالا به این که این دیتای کنترلی کجا نگهداری بشه میرسیم.
اول از همه نباید در فایل باشه (از هیچ نوع) بنابراین نمیتونه یک دیتابیس دیگه باشه و حتی رجیستری چون همه اینها قابل دورزدن یا ردگیری هستن.
راه متداول نگهداری در دانگل سخت افزاری هست (حتی در دانگل های قدیمی که روی پورت پارالل کار میکرد این امکان بود)
به این ترتیب نیازی هم به قفل نرم افزاری نیست (شماره سریال مادربرد و هارد و ...) و مشتری میتونه روی هر سیستم دلخواه برنامه رو اجرا کنه ولی فقط یک نسخه دیتا میتونه داشته باشه.
کلا قفل نرم افزاری بدلایل زیر راهکار خوبی نیست (در واقع بد هم هست!):
1- با هر تغییر در سیستم نیاز به آپدیت توکن هست و خراب شدن قطعات هم یک امر متداول هست
2- امکان پرتابل بودن کار رو از بین میبره - خیلی از کاربرها پروژه هاشون رو بین دفتر و خونه منتقل میکنن و یا در چند محل کار میکنن
کلا از هر چیزی که باعث ناراحتی کاربر میشه باید دوری کرد، وگرنه در اولین فرصت یک جایگزین بهتر پیدا میکنه.
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
در مورد دیتابیس و اینکه رمز رو باید داد یا نه؟
درسته که دیتا کاربر مال خودش هست، ولی طراحی دیتابیس هم مال برنامه نویس هست.
کافی هست یک امکان اکسپورت دیتا به xml یا csv در برنامه بگذارید.
در هر صورت نباید خریدار رو از دسترسی به دیتا خودش محروم کرد.
دیتابیس برنامه های شرکت های بزرگ (مثل همین همکاران سیستم) کاملا باز هست-فقط یک قفل سخت افزاری روی سرور دارن.
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
نقل قول:
نوشته شده توسط
mazoolagh
در مورد دیتابیس و اینکه رمز رو باید داد یا نه؟
درسته که دیتا کاربر مال خودش هست، ولی طراحی دیتابیس هم مال برنامه نویس هست.
کافی هست یک امکان اکسپورت دیتا به xml یا csv در برنامه بگذارید.
در هر صورت نباید خریدار رو از دسترسی به دیتا خودش محروم کرد.
دیتابیس برنامه های شرکت های بزرگ (مثل همین همکاران سیستم) کاملا باز هست-فقط یک قفل سخت افزاری روی سرور دارن.
سلام و سپاس از توضیحات کامل شما دقیقا درست میفرمایید ..تصور بنده چیزی دیگری بود از صحبت های قبلی که کامل حل شد
من در برنام هام امکان خروجی گرفتن از هر نوعی رو فراهم میکنم که کاربر دچار مشکل نشه
رمز دیتا بیس رو هم کتبی و محرمانه به مدیر میدم که اگر مشکلی بوجود اومد و من در دسترس نبودم بتونن مشکل رو از طریق یک متخصص حل کنند
به هر حال ممنون از راهنمایی های شما ...
نقل قول: چگونه میتوان از اجرای دوباره نسخه کپی شده یک فایل اکسس روی هارد یک کامپیوتر جلوگیری کرد....
نقل قول:
نوشته شده توسط
mazoolagh
کلا از هر چیزی که باعث ناراحتی کاربر میشه باید دوری کرد، وگرنه در اولین فرصت یک جایگزین بهتر پیدا میکنه.
این جمله طلايیه....صدردصد موافقم