View Full Version : گفتگو: چگونه از كپي شدن جداول و اطلاعات جلوگيري مي كنيد ؟
سعید حمیدیانفر
سه شنبه 22 مرداد 1387, 12:44 عصر
با سلام خدمت همه اساتيد
فرض كنيد ميخوايم يه بانك اطلاعاتي مثل118 (كه كپي نشدن اطلاعاتش برامون خيلي مهمه)
رو در قالب يك نرم افزار روي سي دي منتشر كنيم
راه حل پيشنهادي شما براي اينكه كاربر به بانك اطلاعاتي ما به شكل مستقيم دسترسي پيدا نكنه چيه
بديهي است كه اطلاعات ما در اين نرم افزار فقط خواندني هستن و نيازي نيست كاربر چيزي رو كم زياد يا ويرايش كنه
اولين چيزي كه به ذهنم رسيده اينه كه ميتونيم جداولي كه اطلاعات كليدي و مهم رو دارن بصورت Include داخل فايل اجرايي (EXE) نگهداري كنيم
اما نمي دونم اين حجم فايل اجرايي رو زيادي افزايش نميده ؟؟
از كليه دوستاني كه تو اين زمينه صاحب نظر هستن خواهش ميكنم يه صفايي به اين تاپيك بدن
ممنون
binyaz2003
سه شنبه 22 مرداد 1387, 12:52 عصر
فکر نکنم ولي آقاي حسيني شايد بتونند کامل به سئوال شما جواب بدن.دو تا نرم افزاري که ايشون به من هديه کردند (در حريم طوس،شميم گل نرگس) از همين روش يعني include کردن جداول استفاده شده و برنامه هم براحتي و سرعت کار ميکنه.
mehran_337
سه شنبه 22 مرداد 1387, 15:03 عصر
البته سید جواد عزیز از روش txt کردن اطلاعات استفاده می کنند یعنی اطلاعات را درون یک فایل متنی کد می کنند . فرصت خوبی شد که روششونو اینجا آموزش بدهند .
جناب حسینی بسم الله ... این عیدی نیمه شعبان امسال ما از دست شما سید بزرگوار باشه . منتظریم.
NewFoxStudent
سه شنبه 22 مرداد 1387, 15:20 عصر
ما هم منتظریم
rezaTavak
چهارشنبه 23 مرداد 1387, 07:36 صبح
اضافه کردن حجم فایل اجرایی را افزایش میدهد اما در آن تاثیری ندارد. چون فایل exe چندین بخش دارد که یکی شامل Data است که در این بخش ذخیره میشه.
سعید حمیدیانفر
چهارشنبه 23 مرداد 1387, 10:05 صبح
جناب آقاي حسيني ما هم منتظريم
سعید حمیدیانفر
پنج شنبه 24 مرداد 1387, 08:33 صبح
كسي علاقه اي به ادامه اين بحث نداره ؟؟؟
NewFoxStudent
پنج شنبه 24 مرداد 1387, 08:47 صبح
البته که علاقه داریم
هادی-محمد
شنبه 26 مرداد 1387, 11:41 صبح
بسيار جالب است ماهم منتظريم
rahro
پنج شنبه 31 مرداد 1387, 11:34 صبح
سلام
مثلي كه از آقا سيد خبري نشد
براي اين تاپيك باد هوا نخوره خواستم با اطلاعات محدود خودم فعالش كنم!:خجالت:
يكي از راههاي كه ميشه از كپي اين نوع فايلها يا جداول جلوگيري كرد به نظر من كد كردن اونهاست .
من پيشنهاد دارم اصل جدول يا قايل متني رو كد كنيد و در موقع استفاده باز و بلافاصله بعد از خروج جدول رو هم حذف كنيد .
براي مثال فايل كتابخانه اي vfpencryption.fll ابزار مناسبي براي اينكار است
بعنوان مثال موقعي هنگامي كه برنامه رو ميخواهيد تحويل دهيد كافي است بعد از فراخواي تابع فوق به حافظه با دستور ذيل جدول خود رو كد كنيد :
=ENCRYPTFILE('c:\bank.dbf','c:\kbank.dat','passwor d',4)
و بعد جدول خود رو حذف كنيد و هنگام فراخواني با دستور ذيل اول اون رو باز بعد ازش استفاده كنيد:
= DECRYPTFILE('c:\kbank.dat','c:\bank.dbf','password ',4)
خاطرتان باشد جاي پسورد ميتوانيد پسورد مورد نظر خودتان را قرار دهيد و توصيه ميشه جدول خود رو در جاي غيراز مسير اصلي باز كنيد و ساير ابتكار عملهاي ديگه...
در ذيل ميتونيد فايل كتابخانه فوق به همراه يك قايل متني راهنما براي استفاده بهينه و بهتر از اين كتابخانه را دانلود كنيد.
منتظر نظر ساير دوستان خصوصا سيد عزيز هستم
سعید حمیدیانفر
پنج شنبه 31 مرداد 1387, 12:03 عصر
براي اين تاپيك باد هوا نخوره خواستم با اطلاعات محدود خودم فعالش كنم!:خجالت:
با تشكر از اينكه بالاخره قفل سكوت اين تاپيك رو شكستيد . ممنونم
من پيشنهاد دارم اصل جدول يا قايل متني رو كد كنيد و در موقع استفاده باز و بلافاصله بعد از خروج جدول رو هم حذف كنيد .
اين راه يه اشكالي داره موقعي كه شما جدول رو بازكردين ديگه فايل كد شده نيست يعني
فقط كافيه كاربر زرنگي كنه و بره فايل مربوط به جدول رو كپي كنه يه جاي ديگه و ...
حالا ممكنه نتونه همزمان با use بودن جدول توسط برنامه اينكار روبكنه باز هم يه راه در رو داره اينكه برنامه ما رو End Procces كنه كه در اين حالت هم به مراد خودش مي رسه
براي اين مشكل راه حلي هست ؟
rahro
پنج شنبه 31 مرداد 1387, 12:10 عصر
با تشكر از اينكه بالاخره قفل سكوت اين تاپيك رو شكستيد . ممنونم
اين راه يه اشكالي داره موقعي كه شما جدول رو بازكردين ديگه فايل كد شده نيست يعني
فقط كافيه كاربر زرنگي كنه و بره فايل مربوط به جدول رو كپي كنه يه جاي ديگه و ...
حالا ممكنه نتونه همزمان با use بودن جدول توسط برنامه اينكار روبكنه باز هم يه راه در رو داره اينكه برنامه ما رو End Procces كنه كه در اين حالت هم به مراد خودش مي رسه
براي اين مشكل راه حلي هست ؟
ببينيد گفته شما شايد منطقي به نظر برسه بشرطي كه كاربر در خصوص كد نويسي اشتباه عمل كنه!
توجه كنيد شما پس از ريكد كردن جدول بلافاصله او رو در يك كرسر ميريزد . اين زماني زيادي از شما نمگيره و شما بعد از حذف جدول اصلي كرسر رو باز ميكنيد.
new_day
پنج شنبه 31 مرداد 1387, 14:17 عصر
با سلام ببخشيد
براي من سوال پيش اومد . در مورد شبكه مشكل ميشه اين روش را بكار برد
اگه روي سرور باشه كه تمام كاربرا ميتونند از اون كپي بردارند اگه برنامه هر كاربري اين عمليات را انجام بده اولي كه انجام بده دومي با مشكل مواجه ميشه
rahro
شنبه 02 شهریور 1387, 06:32 صبح
با سلام ببخشيد
براي من سوال پيش اومد . در مورد شبكه مشكل ميشه اين روش را بكار برد
اگه روي سرور باشه كه تمام كاربرا ميتونند از اون كپي بردارند اگه برنامه هر كاربري اين عمليات را انجام بده اولي كه انجام بده دومي با مشكل مواجه ميشه
قرار نيست كه اين جدول يا فايل به اشتراك گذاشته بشه! هر كلينت اين جدول يا فايل رو ميتونه به همراه داشته باشه.
mehran_337
شنبه 02 شهریور 1387, 07:56 صبح
دردسرهای کدنویسیش بیشتره.
می دونی وقتی چنین برنامه هایی رو به جاهای دور بدی از اول چه پیش بینیهایی رو باید انجام بدی؟
اینکه دیکد شده یهو برق بره ، اول برنامه وجودش چک بشه آخر برنامه حتما صحت کد شده اش تایید بشه و یا ...
rahro
شنبه 02 شهریور 1387, 08:13 صبح
دردسرهای کدنویسیش بیشتره.
می دونی وقتی چنین برنامه هایی رو به جاهای دور بدی از اول چه پیش بینیهایی رو باید انجام بدی؟
اینکه دیکد شده یهو برق بره ، اول برنامه وجودش چک بشه آخر برنامه حتما صحت کد شده اش تایید بشه و یا ...
محسن جان دقت نميكني! يا من بد توضيح دادم
عرض كردم شما جدول رو بلافاصله با از ديكد كردن درون كرسر ميريزي و بعد جدول ديكد شده رو حذف ميكني آنوقت از اطلاعات كرسر استفاده ميكني .
rezaTavak
شنبه 02 شهریور 1387, 10:08 صبح
با فرض اینکه طرف زیاد سررشته از کامپیوتر ندارد:
با sqlite و ODBC کار میکنید و پسوند را یا چیزی مانند dll بگذارید.
سعید حمیدیانفر
شنبه 02 شهریور 1387, 10:20 صبح
با فرض اینکه طرف زیاد سررشته از کامپیوتر ندارد
خير
اتفاقا احتمال ميدم اين سي دي چون كاربرد تجاري و تبليغاتي داره شايد خدمت اساتيدي مثل شما برسه
-------------------------------------------------------------------------------------------------------------
با توجه به نظرات دوستان تا اينجا تنها راهي كه به ذهنم ميرسه و كم دردسر تره اينه كه
يا كل اطلاعات متني رو كه تو جدولها ثبت ميشه كد كنيم و يا كل اطلاعات عددي
به نظر شما كدوم اور هد كم تر و در نتيجه سرعت مطلوبتري خواهد داشت ؟
rahro
شنبه 02 شهریور 1387, 10:54 صبح
منظورتون رو از "كدوم اور هد كم تر" متوجه نشدم !؟
ولي پيشنهاد منه اينه تمام داده رو كد كني. كاهش سرعت مطمئنا محسوس نيست.
سعید حمیدیانفر
شنبه 02 شهریور 1387, 11:17 صبح
منظورتون رو از "كدوم اور هد كم تر" متوجه نشدم !؟
منظورم اين بود كه
اگه فيلد هاي فقط متني رو كد كنم كاهش سرعت محسوس تره
يا فقط فيلد هاي عددي رو كد كنم
NewFoxStudent
دوشنبه 11 شهریور 1387, 10:16 صبح
آقای حسینی عزیز ما هنوز منتظریم
javad_hosseiny
دوشنبه 11 شهریور 1387, 11:17 صبح
با عرض شرمندگی از دوستان که این چند وقت انتظار بنده را کشیدند
در رابطه با موضوع مورد بحث ابتدا نکته ای در پاسخ یکی از دوستان که روش کد کردن را مطرح کرده بود عرض کنم
از این روش در محیط داس خیلی وقت قبل (73) استفاده می کردیم حال شاید در آن موقعیت زمانی و یا عدم امکاناتی همچون مولتی تاسک ویندوز ، هوش کاربری و ... مناسب بود ولیکن الان تاحد زیادی منسوخ شده هست (دقت داشته باشید بر فرض استفاده از کرسر خود فراخوانی و یا بازگرداندن اطلاعات تغییر یافته (اصلاحیات) و یا حتی کنترل تغییرات خود یک پروسه زمان بر خواهد بود (البته با توجه به حجم اطلاعات)) که خوب در کل با وجود این نکته انحرافی نیز استفاده از آن را غیرمعمول خواهد کرد
و اما نکته اصلی در قیاس بحث حفاظت اطلاعات اگر نرم افزار قابلیت افزونگی اطلاعات را ندارد (همچون خیلی از نرم افزارهای تولیدی که به صورت عمومی عرضه می شوند) خوب به راحتی از قابلیت include خود پروجکت ویژوال فاکس می توانید اینکار را انجام دهید و جهت جلوگیری از عدم extract اطلاعات توسط نرم افزارهای همچون ریفاکس و یا نرم افزارهای مشابه می توانید از پکرها استفاده نمایید (که در خود این سایت و یا سایتها امنیتی (همچون آشیانه، سیمرغ، پی سی سون، آنریل و ...) الی ماشاءالله در مورد آن بحث و تبادل نظر شده ، که خواندن این مطالب و ... را به تمامی دوستان پیشنهاد می کنم)
بنده به شخصه در نرم افزارهای تولیدی سعی کردم از تنها یک روش استفاده نکنم و ترکیبی از آنها را بکار ببندم (البته لازم به ذکر است که در زمینه تبدیل اطلاعات (از محیط های مختلف (داس، ویندوز، وب، مکینتاش و ...) ) و همچنین استخراج اطلاعات (کراک دیتا) از نرم افزارهای مختلف زیاد فعالیت داشته ام)
از حسن برخورد با دیتابیس اینجنین های مختلف و یا نرم افزارهای اطلاعاتی دیگران آشنایی با طرز فکر برنامه نویسان آنهاست که خوب جمع آوری ترکیب آنها ، کمک زیادی به برنامه نویس در تولید نرم افزار جدید خود خواهد کرد.
لذا شما نیز سعی نمایید علاوه بر تحقیق و تفحص و خواندن نظر دیگران در اینترنت راجع به بحث انواع روشهای حفاظت و یا نرم افزارهای مربوطه (همچون پکرها) در مورد کارکردن و سروکله زدن با دیتابیس نرم افزارهای مختلف نیز فعالیت نمایید
در این زمینه یقینا با بحثهای کدینگ اطلاعات (البته از باب کم حجم شدن اطلاعات و افزایش سرعت جستجو ...) آشنا می گردید (که نمونه توضیحی آن را بنده خیلی وقت قبل در تایپیک نمونه برنامه های کاربردی راجع به نرم افزار کشف الرجال خود بیان کرده بودم) و یا استفاده از فایلهای تکست به عنوان ضمیمه ای برای جداول خود (که خوب در این نوع فایلهای تکست شما قابلیت فشردگی اطلاعات را بهتر از خود جداول و یا نوع فیلدهای memo دارید) و یا مثلا در محیط سیستم عامل داس استفاده از دیتابیس اینجنین های مهجور و کم مصرف برای اطلاعات حیاتی نرم افزار خود می توانید استفاده نمایید
واما در نرم افزارهای مورداشاره دوستان (شمیم گل نرگس و یا در حریم طوس که هر دو آنها به صورت تحت وب نیز ارائه شده اند (رجوع به امضاء)) در این نرم افزارها ابتدا کلیه اطلاعات جمع آوری شده تحت قالب تکست و یا جدول ذخیره شده ) که البته تمامی محتوی مطالب بصورت قالب html بوده اند که برای تغییر رنگ و نمایش و زیباسازی از css استفاده شده ولیکن اصل فایل مورد نمایش در برنامه یک فایل وب خالی که از یک فایل استایل استفاده می کند می باشد که در داخل برنامه این مطالب از جداول و یافایلهای تکست به این فایل وب تزریق می شود (innertext , innterhtml) و سپس توسط ocx مربوط به نمایش صفحات وب آن را در داخل محیط برنامه نمایش می دهم
(هرچند به راحتی از طریق کدهای جاواسکرپیت شما می توانید قابلیت کپی پیست و یا راست کلیک را از صفحه بگیرید) ولیکن در تولید نرم افزار خود نکته انتقال به یادداشت را خود گذاشته بودیم تا کاربر به راحتی از آن استفاده کند فقط مخالف با کپی بردای کامل از محتویات برنامه بصورت یکجا بودیم
(که هرچند آن هم برخی از مراکز با مراجعه مستقیم به مؤسسه آن را از ما تحویل گرفتند) ولیکن اینجا تحت بحث فنی از دید برنامه نویس هست که چگونه می توان از کپی کردن اطلاعات حتی در داخل محیط برنامه جلوگیری کرد (که همان طور که توضیح دادم خارج از محیط برنامه امکان پذیر نیست و در داخل محیط برنامه نیز از طریق کدنویسی جاوا می توان این امر را امکان پذیر کرد)
(البته دوستان می توانند الگوریتم کاری نرم افزار شتاب را که نیز مشابه این روش کار می کند را مطالعه نمایند( که آنها نیز در نسخه جدید خود روش کاری را تغییر دادند، چرا که در روش قبلی اصل فایل را فشرده کرده و اطلاعات هدر آن را در جدول ذخیره می کردند و در روش جدید کل اطلاعات را مشابه نرم افزارهای ما در جدول ذخیره می کردند) هرچند دیتابیس اینجنین آنها اکسس تغییرنام یافته با پسورد است که متاسفانه امنیت بسیار ضعیفی دارد)
نکته دیگر ان است که در ارتباط بین جداول در دیتابیس داخلی خود سعی بر آن داشته باشید که حتی اگر شخص کل دیتابیس شما را نیز به دست آورد به راحتی قادر به تشخیص ارتباطات بین جداول نگردد (البته دقت داشته باشید این استتار در ارتباطات بین جداول باید به حدی باشد که مانع جستجو نرمال و سریع نگردد))
و نهایت امر بعد از اتمام کار پروژه شما می توانید از چندین پکر که با یکدیگر سازیگاری دارند (چرا که مشکل اصلی در خروجی نهایی برخی دیگر از برنامه نویسان استفاده ترکیبی از پکرهایی است که بعضا در سیستم های مختلف درست عمل نمی کنند)
پیشنهاد شخصی بنده استفاده از مولی باکس با پکرهای دیگر هست، چرا که علاوه بر حفاظت قابلیت فشرده سازی اطلاعات را نیز دارد (به طور نمونه نرم افزار درّ نجف با حجم حدود 700 مگابایت اطلاعات پس از استفاده از این ابزار (البته به همراه سایر فایلهای ضمیمه همچون فایلهای فلش، تصاویر، فایلهای اگزه امکانات برنامه و ... به چیزی حدود 150 مگابایت کاهش یافت)
نهایتا این مطالب تجربیاتی بود اندک که از فعالیت چندین ساله در این عرصه بدست آمده بود ، امیدوارم که این نکات ریز به کار دوستان بیاید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.