آموزش ساخت لایسنس روی دامنه در PHP برای محافظت از اسکریپتها
محافظت از کدهای PHP در برابر استفاده غیرمجاز و اجرا روی دامنههای غیرمجاز یکی از نیازهای اساسی توسعهدهندگان است. در این مقاله، روشی ساده برای پیادهسازی سیستم لایسنس دامنهای در PHP را آموزش میدهیم.
ایده کلی سیستم لایسنس
سیستم لایسنس به گونهای طراحی میشود که دامنههایی که مجاز به اجرای اسکریپت هستند در لیستی ذخیره شوند. اگر اسکریپت در دامنهای خارج از این لیست اجرا شود، از ادامه اجرای آن جلوگیری میشود و پیام خطای لایسنس معتبر نیست نمایش داده میشود.
کد پیادهسازی سیستم لایسنس
ابتدا فانکشنی تعریف میکنیم که دامنه فعلی را با لیست مجاز مقایسه کند:
<?php function checkLicense(array $allowedDomains) { // گرفتن دامنه فعلی $currentDomain = $_SERVER['HTTP_HOST'] ?? 'unknown'; // بررسی دامنه در لیست مجاز یا لوکالهاست if (in_array($currentDomain, $allowedDomains) || in_array($_SERVER['SERVER_ADDR'], ['127.0.0.1', '::1'])) { // دامنه معتبر است return true; } // نمایش پیام خطا و توقف اجرا header("HTTP/1.1 403 Forbidden"); die("لایسنس معتبر نیست."); }
پارامترها:
$allowedDomains: آرایهای از دامنههای مجاز (مانند example.com و localhost) که اسکریپت تنها در این دامنهها اجرا میشود.
$_SERVER['HTTP_HOST']: دامنه فعلی که اسکریپت روی آن اجرا میشود.
$_SERVER['SERVER_ADDR']: آدرس IP سرور برای شناسایی اجرای لوکالهاست.
$_SERVER['HTTP_HOST']: دامنه فعلی که اسکریپت روی آن اجرا میشود.
$_SERVER['SERVER_ADDR']: آدرس IP سرور برای شناسایی اجرای لوکالهاست.
نحوه استفاده در کد
لیست دامنههای مجاز را مشخص کنید.
تابع checkLicense را در ابتدای اسکریپت اصلی فراخوانی کنید.
اگر دامنه معتبر باشد، اسکریپت به درستی اجرا میشود. در غیر این صورت، پیام خطای لایسنس نمایش داده شده و اسکریپت متوقف میشود.
نمونه استفاده:
<?php // لیست دامنههای مجاز $allowedDomains = [ 'example.com', 'mywebsite.com', 'localhost' ]; // بررسی دامنه checkLicense($allowedDomains); // ادامه اجرای کد در صورت معتبر بودن لایسنس echo "اسکریپت شما با موفقیت اجرا شد!";
جمع بندی:
کافیست تکه کد بالا را در جای مناسبی در اسکریپت ، پلاگین و یا افزونه های طراحی شده با php قرار بدید و دامنه یا دامنه های مجاز را در آن تعریف کنید، سپس فایلهای مورد نظرتان را در سایت کپی بن ، کدگذاری کنید