PDA

View Full Version : سوال: چطور میتونم برنامه ای که نوشتم دست مشتری هست رو به محض اتصال به اینترنت قطع کنم؟



Mosafers
سه شنبه 14 مهر 1394, 08:14 صبح
سلام من یه برنامه کوچک نوشتم به سه مشتری فروختم حالا میخوام مثلا اگه فلان مشتری از سورس سو استفاده کرد و اونو در شبکه مجازی در معرض عموم قرار داد بتونم غیر فعالش کنم؟؟؟

ضمنا کارکرد برنامه من اینترنتیه.

خودم فکر کنم توی یک صفحه خاص (مثل وبلاگ) چند کد عددی بذارم تا فلان برنامه با کد این بررسی کنه در صورت وجود کد توی وبلاگ اجرا بشه؟

محمد رضا فاتحی
سه شنبه 14 مهر 1394, 08:27 صبح
سلام...مشکلتون واضح نیست
منظورتون از سو استفاده از سورس چیه؟؟ سورس که به مشتری نددادید صد در صد... قفل نرم افزاری داره برنامه یا سخت افزاری؟؟
اگه قفل نرم افزاری داره می تونید سریال رو روی هاست قرار بدید و از اون هاست بخونید
در ضمن اگه کارکرد نرم افزارتون اینترنتیه چطور می خوان برنامه رو به محض اتصال به اینترنت قطع کنید؟؟!

Mosafers
سه شنبه 14 مهر 1394, 08:46 صبح
ممنونم بابت راهنمایتون.
ببینید من یه برنامه دارم اطلاعات رو از اینترنت میخونه.
یکی از مشتریا برنامه رو توی اینترنت قرار داد حالا میخوام یه کاری کنم که هر کدوم از مشتریا یه کدی داشته باشند و در صورتیکه نسخه منو بزنن توی اینترنت بتونم غیر فعالش کنم؟ یه راه مناسب و ساده چیه؟
استفاده از هاست مناسبه ولی هزینه بره برای این نرم افزار.

کامبیز اسدزاده
سه شنبه 14 مهر 1394, 09:02 صبح
سلام من یه برنامه کوچک نوشتم به سه مشتری فروختم حالا میخوام مثلا اگه فلان مشتری از سورس سو استفاده کرد و اونو در شبکه مجازی در معرض عموم قرار داد بتونم غیر فعالش کنم؟؟؟

ضمنا کارکرد برنامه من اینترنتیه.

خودم فکر کنم توی یک صفحه خاص (مثل وبلاگ) چند کد عددی بذارم تا فلان برنامه با کد این بررسی کنه در صورت وجود کد توی وبلاگ اجرا بشه؟

خب برنامه که آنلاین باشه کارتون خیلی راحتره میتونید یک تابع خیلی ساده بنویسید ، که بر اساس یک الگوریتم خاص یک فایلی رو از سایت شما بخونه و یک سری شرایط رو بررسی کنه و در صورت عدم مطابقت دستوری به یک تابع با نام مثلا Destroy کل نرم افزار رو از بین ببره.

البته روش های زیادی رو میشه در نظر گرفت ، مثلا میتونید برای هر نسخه از نرم افزار یک سریال انحصاری تعریف کنید و اون رو هم در دیتابیس یا فایل مشخصی در هاست سایتتونن قرار بدین و دسترسی به اون فایل هم Ready Only باشه بعد نرم افزار شما طی یک فرآیند مشخصی در Back Process این مورد رو بررسی کنه و اگر مطابقت داشته باشه اجازه اجرا شدن رو ارسال کنه در غیر اینصورت یک اخطار بده و بعد تابع Destroy اجرا بشه که این تابع میتونه یک کدی باشه که عمل حذف کردن یا از بین بردن برنامه و یا بانک اطلاعاتی رو انجام خواهد داد.

در رابطه با نحوه Destroy یکم توضیح میدم :

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

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

برای همچین مواردی پیشنهاد میشه از هاست واقعی استفاده کنید ، وبلاگ امکانات خاصی رو نداره مثلا در هاست واقعی شما میتونید یک بخشی رو فقط به عنوان API Service در نظر بگیرید.

Mosafers
سه شنبه 14 مهر 1394, 11:11 صبح
خب برنامه که آنلاین باشه کارتون خیلی راحتره میتونید یک تابع خیلی ساده بنویسید ، که بر اساس یک الگوریتم خاص یک فایلی رو از سایت شما بخونه و یک سری شرایط رو بررسی کنه و در صورت عدم مطابقت دستوری به یک تابع با نام مثلا Destroy کل نرم افزار رو از بین ببره.

البته روش های زیادی رو میشه در نظر گرفت ، مثلا میتونید برای هر نسخه از نرم افزار یک سریال انحصاری تعریف کنید و اون رو هم در دیتابیس یا فایل مشخصی در هاست سایتتونن قرار بدین و دسترسی به اون فایل هم Ready Only باشه بعد نرم افزار شما طی یک فرآیند مشخصی در Back Process این مورد رو بررسی کنه و اگر مطابقت داشته باشه اجازه اجرا شدن رو ارسال کنه در غیر اینصورت یک اخطار بده و بعد تابع Destroy اجرا بشه که این تابع میتونه یک کدی باشه که عمل حذف کردن یا از بین بردن برنامه و یا بانک اطلاعاتی رو انجام خواهد داد.

در رابطه با نحوه Destroy یکم توضیح میدم :

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


برای همچین مواردی پیشنهاد میشه از هاست واقعی استفاده کنید ، وبلاگ امکانات خاصی رو نداره مثلا در هاست واقعی شما میتونید یک بخشی رو فقط به عنوان API Service در نظر بگیرید.


واقعا ممنونم خیلی لذت بردم از خوندن و صرف وقتتون کمتر کسایی با تجربه پیدا میشن اندوختشون رو به اشتراک بذارن


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

و این توابعی که شما گفتید در حال حاضر از توان برنامه نویسی من خارجه مفهومی بود و کار با توابع خیلی برام دشواره که باید در روزهای آتی تمرکز بیشتری رو این مبحث داشته باشم.
جسارتا من توان توابع نویسی رو ندارم نمیشه از قفل نرم افزاری استفاده کنم محدود به سیستمش کنم؟

قصد داشتم یک فایل text روی هاست بذارم و شماره سریال هر نرم افزار رو هم توی فایل بذارم تا نرم افزار در هنگام اجرا با خواندن فایل متنی در صورت وجود شما سریال و مطابقت اجرا شود.
و این روش مناسبه اما نمیتواند کاربر رو محدود کند شاید این نرم افزار رو به یک نفر دیگر هم داده باشد اینجا راه حلی نیست؟

کامبیز اسدزاده
سه شنبه 14 مهر 1394, 11:24 صبح
واقعا ممنونم خیلی لذت بردم از خوندن و صرف وقتتون کمتر کسایی با تجربه پیدا میشن اندوختشون رو به اشتراک بذارن
خواهش میکنم



جسارتا من توان توابع نویسی رو ندارم نمیشه از قفل نرم افزاری استفاده کنم محدود به سیستمش کنم؟


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



قصد داشتم یک فایل text روی هاست بذارم و شماره سریال هر نرم افزار رو هم توی فایل بذارم تا نرم افزار در هنگام اجرا با خواندن فایل متنی در صورت وجود شما سریال و مطابقت اجرا شود.
و این روش مناسبه اما نمیتواند کاربر رو محدود کند شاید این نرم افزار رو به یک نفر دیگر هم داده باشد اینجا راه حلی نیست؟

فایل تکس رو مصلحت نمیدونم چرا که به راحتی قابل دانلوده مگر نمیگم با روش ها و فیلتر سازی های لازم رد htaccess یک سری دسترسی هارو غیر فعال کنید که اینکار هم موجب میشه در سرتاسر سایت اجرا بشه ، برای ایمن سازی روش بهتری هست مثلا یک تابعی توسط PHP روی هاست اجرا کنید به صورت api و بعد اون تابع روی سایت شما به بانک اطلاعاتی موجود در PhpMyadmin دسترسی داشته باشه و سریال های موجود رو بخونه و تنها نرم افزار شما بتونه با یک درخواست به طرف سرور به این تابع متصل و بررسی های لازم رو انجام بده قبلا در C#‎‎‎ من سال ها پیش این کار رو انجام داده بودم متاسفانه یادم نیست دقیقا ولی ازش جواب هم گرفتم.

پیشنهادم اینه اگر خیلی خیلی نرم افزار شما حساس هستش و اگر سرور یا وب سایت شما مدام آنلاین و بدون مشکل timeout شدن کار خواهد کرد این روش رو بکار بگیرید در غیر اینصورت میتونید یک الگوریتمی طراحی کنید و با خوندن اطلاعات سخت افزاری و گرفتن مثلا شماره سریال CPU یا H.D.D و ... نرم افزار رو ثبت کنید و هنگام ثبت شماره سریال سخت افزاری همراه با شماره سریال نرم افزار به سرور سایت شما ارسال بشه و یا از کاربر دریافتش کنید که اگر قرار باشه دوباره همون نرم افزار رو روی سیستم دیگری ثبت کنند هنگام بررسی در مرحله ثبت بر اساس مشخصات سخت افزاری به خاطر وجود اطلاعات روی سرور نرم افزار اخطاری رو بده که این سریال نرم افزار قبلا در شرکت یا سایت شما ثبت گردیده است.

NasimBamdad
سه شنبه 14 مهر 1394, 22:11 عصر
خب برنامه که آنلاین باشه کارتون خیلی راحتره میتونید یک تابع خیلی ساده بنویسید ، که بر اساس یک الگوریتم خاص یک فایلی رو از سایت شما بخونه و یک سری شرایط رو بررسی کنه و در صورت عدم مطابقت دستوری به یک تابع با نام مثلا Destroy کل نرم افزار رو از بین ببره.

البته روش های زیادی رو میشه در نظر گرفت ، مثلا میتونید برای هر نسخه از نرم افزار یک سریال انحصاری تعریف کنید و اون رو هم در دیتابیس یا فایل مشخصی در هاست سایتتونن قرار بدین و دسترسی به اون فایل هم Ready Only باشه بعد نرم افزار شما طی یک فرآیند مشخصی در Back Process این مورد رو بررسی کنه و اگر مطابقت داشته باشه اجازه اجرا شدن رو ارسال کنه در غیر اینصورت یک اخطار بده و بعد تابع Destroy اجرا بشه که این تابع میتونه یک کدی باشه که عمل حذف کردن یا از بین بردن برنامه و یا بانک اطلاعاتی رو انجام خواهد داد.

در رابطه با نحوه Destroy یکم توضیح میدم :

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

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

برای همچین مواردی پیشنهاد میشه از هاست واقعی استفاده کنید ، وبلاگ امکانات خاصی رو نداره مثلا در هاست واقعی شما میتونید یک بخشی رو فقط به عنوان API Service در نظر بگیرید.




خیلی عالی بود منم دنبال ای نبودم

arash21hhhh
چهارشنبه 15 مهر 1394, 09:04 صبح
با همه ی حرفای دوستان باید خدمت شما عرض کنم ، با رعایت همه اصول بالا شما چیزی حدود 20% امنیت خواهید داشت و در دات نت عملا نمیشه امنیت خاصی از این جهت ایجاد کرد .