Magic Quotes یکی از ویژگی‌های قدیمی PHP بود که به‌صورت خودکار کاراکترهای خاص مانند ('), ("), () را در داده‌های ورودی (GET, POST, Cookie) Escape می‌کرد تا از حملات SQL Injection جلوگیری شود. این ویژگی با استفاده از دستور magic_quotes_gpc در فایل php.ini فعال یا غیرفعال می‌شد.

چرا Magic Quotes در PHP منسوخ شد؟

ویژگی Magic Quotes از نسخه PHP 5.4 به‌طور کامل حذف شد، زیرا:
غیرقابل اعتماد بود: این قابلیت همیشه به درستی داده‌های ورودی را محافظت نمی‌کرد و گاهی باعث تغییرات ناخواسته در داده‌ها می‌شد.
مشکلات عملکردی ایجاد می‌کرد: به دلیل افزودن کاراکترهای Escape به تمام داده‌های ورودی، عملکرد برخی برنامه‌ها مختل می‌شد.
مدیریت امنیت باید در سطح کدنویسی انجام شود: توصیه می‌شود که از Prepared Statements و توابعی مانند mysqli_real_escape_string() یا PDO برای ایمن‌سازی ورودی‌ها استفاده کنید.

چگونه در سرور لینوکس magic_quotes_gpc را غیرفعال کنیم؟

اگر هنوز از نسخه‌های قدیمی PHP استفاده می‌کنید، می‌توانید مقدار magic_quotes_gpc را در فایل php.ini تغییر  دهید


magic_quotes_gpc = Off

سپس برای اعمال تغییرات، سرور Apache یا Nginx را ری‌استارت کنید:

service apache2 restart   # برای Apache
service nginx restart # برای Nginx

جمع‌بندی:

Magic Quotes در PHP 5.4 حذف شده است و دیگر نیازی به استفاده از آن نیست.
به‌جای این ویژگی، باید از روش‌های مدرن مانند Prepared Statements برای امنیت استفاده کنید.
اگر هنوز از نسخه‌های قدیمی PHP استفاده می‌کنید، توصیه می‌شود که به نسخه‌های جدیدتر مهاجرت کنید.

 برای افزایش امنیت و عملکرد بهتر سایت، از روش‌های استاندارد مانند Prepared Statements و PDO استفاده کنید و از نسخه‌های به‌روز PHP بهره ببرید.

 

آیا این پاسخ مفید بود؟ 0 کاربر این مقاله را مفید می دانند (0 رای)