خطرات و مضرات استفاده از ماژول و قالب های کد شده
روش های کد کردن افزونه و قالب های
منظور از افزونه و قالب های کد شده چیست؟
منظور از افزونهها و قالبهای کد شده در پرستاشاپ، ماژولها و تمهایی است که کدهای آنها به صورت رمزگذاری شده (Encrypted) یا کد بسته (Obfuscated) ارائه میشوند. این کدها معمولاً توسط توسعهدهندگان یا شرکتهای سازنده قفل میشوند تا از دسترسی، ویرایش، یا کپیبرداری توسط کاربران یا رقبا جلوگیری کنند. به عبارت ساده تر وقتی که یک برنامه یا اسکریپت توسط برنامه نویس ساخته میشود، کد های آن قابل مشاهده می باشد. برنامه نویس میتواند توسط روش هایی این کد ها را به علائمی عجیب و غریب تبدیل کند که برای سایر برنامه نویس ها قابل تجزیه و تحلیل نباشد. این امکان در برنامه های سیستمی بسیار کاربردی می باشد. اما در ادامه و به مرور دلیل عدم کاربردی بودن آن در افزونه و قالب های اورجینال را اشاره خواهیم کرد.
در این مقاله هر بار عبارت کدگذاری شده را مشاهده می کنید از ترجمه کلمه Encrypted گرفته شده است و ترجمه صحیح آن رمزگذاری شده می باشد. با این حال بیشتر کدنویس ها از عبارت “کدگذاری شده” استفاده می کنند.
روش های کد کردن افزونه و قالب های پرستاشاپ و و وردپرس
افزونه و قالب ها معمولا توسط دو روش زیر کد گذاری میگردند:
اسکریپتی: در این روش کد نویس سورس فایل (افزونه، قالب، اسکریپت و…) را توسط یک ماژول از پیش ساخته توسط خود یا دیگران کدگذاری میکند.
اکستنشن های PHP: در این روش کد نویس توسط اکستنشن هایی که باید از قبل روی هاست شما نصب شده باشد فایل های خود را کدگذاری میکند.
برای اسکریپت های کدگذاری فایل php موارد زیادی را میتوان پیدا کرد. همچنین از معروف ترین اکستنشن های PHP میتوان به سورس گاردین (Source Guardian) و ioncube اشاره کرد.
حتما در بسیاری از فروشگاه های ایرانی که در حال فروش افزونه و قالب ها هستند مشاهده کرده اید که در توضیحات محصولاتشان بیان شده است روی هاست شما حتما باید ماژول ioncube یا سورس گاردین نصب شده باشد. کار اصلی این ماژول های PHP دیکد کردن فایل های فروشنده برای پردازش آنها می باشد. در صورتی که خواندن آنها برای یک برنامه نویس امکان پذیر نمی باشد.
همین امر میتواند اتفاقات پشت پرده و ناگواری را برای سایت شما رقم بزند. علاوه بر عدم امکان بررسی کد های این پلاگین ها، سرویس های امنیتی نیز به دلیل نامعلوم بودن کد های این فایل ها، از تجزیه و تحلیل آنها ناتوان هستند.
... همین امر میتواند اتفاقات پشت پرده و ناگواری را برای سایت شما رقم بزند. علاوه بر عدم امکان بررسی کد های این پلاگین ها، سرویس های امنیتی نیز به دلیل نامعلوم بودن کد های این فایل ها، از تجزیه و تحلیل آنها ناتوان هستند.
ویژگی های پلاگین/ماژول/افزونه و قالب های کد شده ?
1. رمزگذاری شده با ابزارهایی مثل IonCube یا Zend Guard:
- توسعهدهندگان از این ابزارها برای قفل کردن کدهای PHP استفاده میکنند.
- در این حالت، فایلهای افزونه فقط در سرورهایی که IonCube Loader نصب شده است قابل اجرا هستند.
2. عدم دسترسی به کد منبع (Source Code):
- کدها بهصورت نامفهوم یا رمزگذاری شده ذخیره میشوند و کاربر نمیتواند آنها را مشاهده یا تغییر دهد.
3. وابستگی به سازنده یا ارائهدهنده:
- این نوع افزونهها و قالبها معمولاً به کلید یا لایسنس اختصاصی نیاز دارند که توسط سازنده ارائه میشود.
نوش دارو پس از مرگ ...
به مرور زمان و با بالا رفتن ورودی های سایت شما، موارد گفته شده در بالا اهمیت خود را به صورت پر رنگ تر نشان خواهد داد. متاسفانه در بسیاری از سایت ها، ممکن است دیگر راهی مطلوب و ساده برای رفع مشکلات بالا وجود نداشته باشد؛ هر چند با حذف افزونه یا قالب های کد گذاری شده.
معایب کدگذاری روی افزونه و قالب ها چیست؟
یکی از بزرگترین ایراد های افزونه و قالب های کد شده بعد از نصب آنها پایین آمدن سرعت سایت می باشد. وقتی شما یک سایت را اجرا میکنید، فایل های آن ابتدا از هارد به رم هاست بارگذاری می شود و سپس عمل پردازش آن فایل ها در CPU سرور انجام میگردد.
بدین صورت نمایش یک صفحه از لحظه درخواست آن توسط بازدیدکنندگان سایت به صورت زیر می باشد:
- درخواست نمایش سایت در مرورگر کاربر
- خواندن فایل های سایت از روی هاست
- انتقال کد های سایت از هارد به RAM
- پردازش کد های سایت توسط CPU
- انتقال اطلاعات و نمایش سایت به کاربر

ترتیب بالا به صورت کلی و بدون شمارش جزئیات انجام شده است. یعنی تنها موارد مهم مورد ارتباط با سمت سرور در ترتیب بالا اشاره شده است. در صورتی که یک افزونه یا قالب دارای کد های رمزگذاری شده باشد، یک پردازش اضافی سنگین به سایت شما اضافه میگردد. این پردازش به دلیل سنگین بودن کد هایی که قرار است خوانایی نداشته باشید بسیار زمانبر می باشد. در پایین ترتیب اجرای فایل های کدگذاری شده نمایش داده شده است:
1) درخواست نمایش سایت در مرورگر کاربر
2) خواندن فایل های سایت از روی هاست
3) انتقال کد های سایت از هارد به RAM
4) فراخوانی توابع ماژول رمزگذاری(مانند سورس گاردین یا ioncube) به RAM
5) پردازش کد های رمزنگاری شده (اصطلاحاً دیکد کردن”Decryption”)
6) پردازش کد های سایت توسط CPU
7) انتقال اطلاعات و نمایش سایت به کاربر
در ترتیب بالایی مشاهده میکنید که مرحله چهارم و مرحله سنگین پنجم به سایت شما اضافه شده است. سرعت اجرای این پردازش ها به مرور زمان و با نمایش سایت برای چند نفر یا اجرای افزونه های بیشتر در سایت بسیار پایین می آید. استفاده نکردن فایل های کد گذاری شده باعث افزایش سرعت سایت میگردد.
ایجاد محدودیت برای حافظه کش سایت
در ترتیب پردازش کدهای یک سایت ممکن است از حافظه کش (Cach) نیز استفاده گردد. در سایت هایی که از حافظه ی کش برای نگهداری منابع یا فایل های PHP در آنها استفاده میگردد، ترتیب مراحل به این صورت است که مقداری از کد ها بدون بارگذاری از هارد سرور، مستقیما از RAM (یا حافظه کش مجزا) به CPU منتقل میگردد. در اینگونه مواقع ممکن است به دلیل بالا بودن حجم کد های رمزگذاری شده، این حافظه به دلیل محدودیت در فضای آن با مشکل (آور فلو و پاکسازی توسط فلش خودکار) مواجه شود.
از بین رفتن امنیت با نصب قالب و افزونه کدگذاری شده
مهمترین و پر بحث ترین علتی که میتوان از آن به تنهایی دلیلی برای استفاده نکردن از قالب و افزونه کدگذاری شده یاد کرد، بحث امنیت می باشد. نصب این گونه فایل ها روی سایت ها به احتمال بسیار بسیار بالایی به هک شدن سایت شما در پشت صحنه آن منجر می گردد.
در بیشتر هک کردن سایت ها، هکر موضوع را به نحوی به صاحب سایت اطلاع میدهد. این کار با روش هایی مانند تغییر مطالب(DB Attack)، تغییر ظاهر (دیفیس | Deface)، از دسترس خارج کردن(DDOS)، تغییر مسیر سایت(هک DNS یا Redirect) و… صورت میگردد. اما بر خلاف اینگونه هک شدن هایی که صاحب سایت از آن بی خبر می ماند را میتوان به هک خاموش تشبیه کرد.