# زبان های اسکریپتی > PHP > امنیت در PHP >  جلو گیری از دسترسی به برخی از بخش های سورس

## hosha92

سلام دوستان
خسته نباشید
یه سوال خیلی خیلی فوری فوتی پیش اومده ، ممنون میشم کسایی که راه حلی دارن ارائه بدن...
من یه سایت میشه گفت بزرگ  نوشتم واسه مشتری و حدودا 1.5 سال بصورت پاره وقت زمان برده شایدم بیشتر ولی قرار بر این بوده که سورس رو جداگانه اگه خواستن بخرن ولی خب با توجه به اینکه من مشغله درس دارم فعلا تا یمدت نمیتونم کارو ادامه بدم و قرار شد سورس رو بدم دست مشتری ( بدون هزینه  متاسفانه!چون آشناست مشتری) بعد الان یه سری از کد های مهم رو تو یه فایل جداگانه فراخوانی کردم و یه سری کد هم اضافه کردم که هر روز (اولین بازدید بعد از ساعت 00:00 هر روز) در اولین اجرای برنامه (لود سایت ) چک میکنه سیستم که آیا برنامه مجوز اجرا داره یا نه!چطوری؟؟یعنی متصل میشه به سایت خودم و یه سری اطلاعات با جی سون رد و بدل میشه که بدونم اصلا اسکریپت روی چه دامنه هایی داره نصب میشه چون من راضی نیستم روی بیش از 1 دامنه وصل بشه ) و از طرفی این قابلیت رو گذاشتم که اگه تا موعد مقرر که قرار شده هزینه سورس رو پرداخت کنن،اگه پرداخت نشد،سایت لود نشه ...
منتها همه اینا جای خود،مشکل من الان اینه که با هر سیستم و سایتی کدها رو encode میکنم،یه راهی هست که بشه decode کرد!!!یعنی عملا همه تلاشم به فنا میره...
کسی در رابطه با این مشکل و در کل در رابطه با کل ترفندی که زدم نظری داره؟؟لطفا بهم بگین
ترجیح میدم الان مشکلات کارمو بدونم قبل از اینکه یکی در عمل دورم بزنه و اون موقع زحماتم به باد بره ..

ممنونم  :خجالت:

----------


## hosha92

کسی نبود جواب بده ؟ :افسرده:

----------


## hosha92

مشکل حل شد
توضیحات کامل در پست بعدی

----------


## hosha92

ممنون از جوابای دوستان!!!!
خودم راهشو پیدا کردم،میذارم واسه آیندگان البته اگه یهو این روشم دورش نزنن!!
لینک زیر رو ببینید :
http://fopo.com.ar

کاری هم که کردم این بود که :
یکی از کلاس های خیلی مهم CMS رو که مطمئن بودم هیچ جوری یارو نمیتونه از طریق مهندسی معکوس یا هر روش دیگه ای بازنویسی کنه (البته کار نشد نداره تو برنامه نویسی ولی خب نوشتن این کلاس از نو کار هرکسی نیست چون واقعا تایم زیادی میگیره و اصلا مقرون به صرفه نیست!) رو ادیت کردم ، به نحوی که اولین اقدام سیستم قبل از لود اینه که یه تایعی از همین کلاس رو اجرا میکنه،کار این تابع هم اینه که یه سری اطلاعات از سروری که سورس داره روش اجرا میشه رو به سمت یه URL که آدرسی از سایت خودمه میفرسته،حالا این اطلاعات چیا هستن؟؟آی پی سرور و آدرس لوکال یا کلا دامنه ...
بعد سمت دیگه (رو سروری که سایت خودم هست) اطلاعات ارسالی دریافت میشن و چنانچه ادرس دامنه یا ای پی سرور درخواست کننده،در لیست مجازی که من تعیین کردم باشه،یه 1 برمیگردونه و در غیر این صورت 0 برمیگردونه ضمن اینکه دوباره از طریق جی سون یه پیام خطایی که قابل تغییر هست رو نمایش میده و سایت لود نخواهد شد!
منتها اینم بگم که با توجه به اینکه سایت مذکور بازدید بالایی داره و اگه قرار باشه با هر بار لود شدن،یه درخواست هم به سرور من بفرسته،بنظرم آی پیش سریعا بلاک میشد...واسه همین برنامه رو طوری تنظیم کردم که هر 3600 ثانیه یکبار این پروسه اجرا بشه یعنی بین این 1 ساعت،اگه 1000000 بار هم سایت اجرا بشه هیچ اتفاقی نیفته و فقط هر ساعت یکبار اعتبار سنجی صورت بپذیره ...
ضمنا یه خوبی دیگه هم داره ، اینکه یجورایی قابلیت مانیتورینگ سایت مذکور رو هم داره!!یعنی با هر بار ارسال درخواست،یه Log هم داره ثبت میشه واسه من که جلو هرگونه سوء استفاه گرفته بشه. 

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


موفق باشید

----------


## plague

سلام 
این سایته که دادی خوراک هکر هاست باهاش شل ها رو خیلی کد میکنن 
ماله یه پسره آرژانتینیه من قبلا باهاش صحبت میکردم  

روشی که استفاده کردی بد نیست ولی میشه پیداش کرد و کلا حذفش کرد اون تیکه کد رو 
درکل روش 100% نداری بسته به هوش اونیکه میخاد قفل روبشکونه داره 
من اگه بخام پیداش کنم میام دنبال curl و file_get_contents میگردم و از اونجا میرم دنبال بقیش 

به نظر من نباید سایت رو قطع کنی چون طرف متوجه میشه و میاد دنبال اون تکه میگده و بالاخره پیداش میکنه 
باید یجوری بزنیک ه نفهمن از کجا دارن میخورن ! 

من کلا یبار نیاز شد همچین چیزی رو پیاده کنم کاری که من کردم مشابه شما بود ولی با 2 تفاوت 
1 - بجای اینکه سایت طرف رو قطع کنم فقط به سرور خودم خبر میدادم که ینفر به فلان آدرس داره استفاده میکنه 
2 - یه تیکه کد برای اجرای کوئری از راه دور روی سیستم نوشتم 

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

----------


## hosha92

> سلام 
> این سایته که دادی خوراک هکر هاست باهاش شل ها رو خیلی کد میکنن 
> ماله یه پسره آرژانتینیه من قبلا باهاش صحبت میکردم  
> 
> روشی که استفاده کردی بد نیست ولی میشه پیداش کرد و کلا حذفش کرد اون تیکه کد رو 
> درکل روش 100% نداری بسته به هوش اونیکه میخاد قفل روبشکونه داره 
> من اگه بخام پیداش کنم میام دنبال curl و file_get_contents میگردم و از اونجا میرم دنبال بقیش 
> 
> به نظر من نباید سایت رو قطع کنی چون طرف متوجه میشه و میاد دنبال اون تکه میگده و بالاخره پیداش میکنه 
> ...


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

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

----------

