استفاده از این کد و تعریف لیسانس برای پروژه php "راهنمایی

iranlover1

New Member
با سلام و عرض ادب بحضور دوستان و اساتید گرامی

بنده از اعضای جدید مجید آنلاین هستم و نیاز به یک راهنمایی دارم ، من قصد دارم برای پروژه php ها لیسانس تعریف کنم که یه جورایی کنترل بشه البته با توجه به اینکه میدونم هر راهی ضد اون هم وجود داره و 100% نیست . با یه سری تحقیقاتی که انجام دادم به یک سری کد برخوردم که قصد دارم از این راه استفاده کنم .

در کدهامون بیام همچین دستوری قرار بدیم :

PHP:
$domain = $_SERVER['SERVER_NAME'];
 $domain = ltrim($domain, '.www');
 $hash =  hashish($domain);
 if ($hash == LICENCE){


که LICENCE همون چک کننده دامنه ما باشه که اگر برابر با این بود پروژه کار کنه . واسه تعریف LICENCE هم بیایم در زمان نصب یک فیلد بزاریم که توش وارد بشه و به همراه اطلاعات دیتابیس در config نوشته بشه .

در config :

PHP:
define('LICENCE', '???????????????????');



حالا میخوام بدونم که این مقدار LICENCE رو چطور بدست بیارم که بصورت کد شده باشه ؟؟ آیا md5 میشه کرد ؟؟ چون md5 کردم جواب نداد . ممنون میشم از دوستان و اساتید که راهنمایی بفرمایند .

با تشکر ...
 

Masoud1365

مدیر انجمن
اول که ورودتون رو تبریک میگم !
اگر فقط سوال شما در مورد اینه که از کدوم تابع هش استفاده کنید بنده sha1() رو پیشنهاد میدم که قابل بازگشت نیست و هر مقداری رو به یک رشته 40 ککاراکتری نا مفهوم تبدیل میکنه ! که من یک بار خودم ازش برای لایسنس استفاده کردم.
در کل یه چیزی رو بهتون بگم اگر که برنامه رو به صورت اوپن سورس در اختیار شرکت یا ... قرار میدید اگر که لایسنس نذارید بهتره چون وقتی برنامتون کد نشده باشه راحت کرک میشه ! ( هر چند برنامه ی کد شده رو هم کرک میکنند ولی سخت تر )

موفق باشید .
 

iranlover1

New Member
اول که ورودتون رو تبریک میگم !
اگر فقط سوال شما در مورد اینه که از کدوم تابع هش استفاده کنید بنده sha1() رو پیشنهاد میدم که قابل بازگشت نیست و هر مقداری رو به یک رشته 40 ککاراکتری نا مفهوم تبدیل میکنه ! که من یک بار خودم ازش برای لایسنس استفاده کردم.
در کل یه چیزی رو بهتون بگم اگر که برنامه رو به صورت اوپن سورس در اختیار شرکت یا ... قرار میدید اگر که لایسنس نذارید بهتره چون وقتی برنامتون کد نشده باشه راحت کرک میشه ! ( هر چند برنامه ی کد شده رو هم کرک میکنند ولی سخت تر )

موفق باشید .


سلام . جناب من دامینم رو ازش با sha1 پرینت گرفتم یعنی همون 40 کاراکتری و مقداری که بدست آمد رو در config برابر با LISENCE گذاشتم ولی کار نکرد !! چه باید کرد ؟؟

مثال :

PHP:
print sha1("mydomain.com"); // => e4820e1b88d790e83704bdcb9286656794fd44c3


با تشکر ...
 
آخرین ویرایش:

yakoza

Well-Known Member
من که منظورتون رو متوجه نشدم

این ثابت licence کجا قرار میگییره ؟ یکم بیشتر قضیه رو باز کن ببینیم داستان چیه
 

Masoud1365

مدیر انجمن
خوب licence کجا چک میشه ؟ برنامتون چطوریه ؟ کلا چه الگوریتمی برای licence به کار بردید ؟
 

aria_cop

New Member
اسکریپت که درست کار میکنه!
PHP:
$domain = $_SERVER['SERVER_NAME'];
 $domain = ltrim($domain, '.www');
 $hash =  sha1($domain);
 define('LICENCE', 'hash shodeye domain shoma');  
 if ($hash == LICENCE){

پیشنهاد میکنم یکبار متغیر $hash رو اکو یا پرینت کنی بعد متوجه میشید کجا اشکال دارد. شایدم لاین تعریف لایسنس رو قبل از اجرای شرط انکلود نمی کنید. به هر حال منطق اسکریپت درسته خودم تستش کردم
 

iranlover1

New Member
اسکریپت که درست کار میکنه!
PHP:
$domain = $_SERVER['SERVER_NAME'];
 $domain = ltrim($domain, '.www');
 $hash =  sha1($domain);
 define('LICENCE', 'hash shodeye domain shoma');  
 if ($hash == LICENCE){

پیشنهاد میکنم یکبار متغیر $hash رو اکو یا پرینت کنی بعد متوجه میشید کجا اشکال دارد. شایدم لاین تعریف لایسنس رو قبل از اجرای شرط انکلود نمی کنید. به هر حال منطق اسکریپت درسته خودم تستش کردم


سلام دوستان گرامی ، من لیسانسم رو در config میزارم تا در برنامه چک بشه :


PHP:
define('LICENCE', 'hash shodeye domain shoma');


دامینم رو با چی هش کنم ؟؟ md5 یا sha1 ؟؟؟ من هر دو رو تست کردم ولی جواب نداد :-?

در ضمن من مثلا در همون فایلی که این دستور رو گذاشتم در انتهاش هم این کدو گذاشتم که در صورتیکه درست بود کار کنه و اگه نبود هم اینجور خطا بده :


PHP:
}else{
  echo "Invalid Licence";  
 }

ولی همش همین خطای خودمو میبینم ، ممنون میشم که بدونم اشکال کار من کجاست!
 

yakoza

Well-Known Member
خوب اینطوری هر کی میتونه مقدار licence رو تغییر بده که
مثلا من میام آدرس سایتمو هش میکنم میزارم تو این licence اونوقت اسکریپت کار میکنه
 

iranlover1

New Member
خوب اینطوری هر کی میتونه مقدار licence رو تغییر بده که
مثلا من میام آدرس سایتمو هش میکنم میزارم تو این licence اونوقت اسکریپت کار میکنه

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

aria_cop

New Member
دوست عزیز شما تو متغیر $hash ، تابع sha1 رو استفاده میکنی مسلما باید sh1 دامین مقصد را توی license بذاری دیگه. اگه این اسکریپت و بدون اون قسمت شرطش با یک خط
PHP:
echo $hash;
یکبار اجرا کنید مقداری که در بروسر نشان میدهد را به لایسنس بدهید کار میکند.
برای لایسنس کردن میتونی از ionCube استفاده کنی یا یک هش پیچیده تر که وابسته به چند فایل و شرایط باشه مثل تاریخ ایجاد فایل روی سرور و یک متغیر گم و گور توی یک جای پرت و ... به هر حال کسی که اسکریپت و نال کنه هش شما رو هم میتونه برداره.
راستی چون php به حروف کوچک و بزرگ حساسه حتما اینکار بکنید:
PHP:
strtolower( $_SERVER['SERVER_NAME'] )
. اگه باز نشد از strtolower( $_SERVER['HTTP_HOST'] ) استفاده کنید!
 

Masoud1365

مدیر انجمن
سلام دوستان گرامی ، من لیسانسم رو در config میزارم تا در برنامه چک بشه :


PHP:
define('licence', 'hash shodeye domain shoma');


دامینم رو با چی هش کنم ؟؟ md5 یا sha1 ؟؟؟ من هر دو رو تست کردم ولی جواب نداد :-?

در ضمن من مثلا در همون فایلی که این دستور رو گذاشتم در انتهاش هم این کدو گذاشتم که در صورتیکه درست بود کار کنه و اگه نبود هم اینجور خطا بده :


PHP:
}else{
  echo "invalid licence";  
 }

ولی همش همین خطای خودمو میبینم ، ممنون میشم که بدونم اشکال کار من کجاست!

اگر میشه کدی که برای چک کردن لایسنس گذاشتید + فایل کانفیگتون رو ایننجا بزارید تا برسی بشه
 

iranlover1

New Member
خوب ببینید دوستان مثلا فایل index.php ما چنین محتوایی داره :


PHP:
<?php
//php source codes
$domain = $_SERVER['SERVER_NAME'];
$domain = ltrim($domain, '.www');
$hash =  hashish($domain);
if ($hash == LICENCE){

//php source codes
 
 }else{
  echo "Invalid Licence";  
 } 
?>


که در اینجا //php source codes کدهای php پروژه هستن مثلا و اون دستور رو اینجور قرار دادیم و در انتهای فایل هم که بدین شکل عمل شده . طبیعتا فایل config ما هم بدین شکل خواهد بود :

PHP:
<?php
                     
//database connection settings               
define('LICENCE', '?????????????????????????????????');  // Licence code    
define('DBMS', 'mysql');     // database system   
define('DB_HOST', 'localhost');  // database host   
define('DB_USER', 'test'); // username     
define('DB_PASS', '1234'); // password     
define('DB_NAME', 'test');  // database name     
             
?>


مقدار LICENCE رو هم زمان نصب کارمون یک فیلد اضافه کردیم که در زمان وارد شدن اطلاعات دیتابیس این مورد هم در کانفیگ نوشته بشه و قابل بهره برداری ازش باشه . این کل کاری بوده که کردم . دامینم رو با sha1 هش کردم و در LICENCE نوشته شده ولی زمان تست خطای Invalid Licence که خودمون قرار دادیم را مشاهده میکنیم . آیا با این روش چنین مشکلی رو باید داشته باشم ؟

 
سلام . دوستان این روش آقای iranlover1 واسه تعریف لایسنس مناسبه ؟
منظورم اینه که هرکی می تونه توو Config.php بره مقدار ثابت LICENCE رو ببینه که . . .
راه بهتری وجود نداره ؟
ممنون
 

Masoud1365

مدیر انجمن
شما بیا یه کاری کن !
متغیر $hash رو با لایسنس خودت مقایسه کن ببین چطورین ؟ شاید اون چیزی که در دیتا بیس ذخیره میکنی با اون چیزی که در لایسنس قرار دادی متفاوت باشند !
 

Masoud1365

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

parsiteam

Member
سلام . خب چه کاریه !!!!! من میام خط زیر رو پاک میکنم و لایسنس و اینا همه میشه کشک :

PHP:
if ($hash == LICENCE){

حالا برنامه نال شده استفاده میشه . بلایی که داره سر انجمن ساز ویبولتین در میاد همینه دیگه .

تنها راه کد کرد سورس برنامست .
 

جدیدترین ارسال ها

بالا