۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

پیشنهاد جاوا باعث حذف sun.misc.دسترسی ناامن حافظه می شود

روش‌های دسترسی به حافظه در کلاس 20 ساله برای انجام عملیات‌های سطح پایین برای حذف در نسخه آتی جاوا علامت‌گذاری می‌شوند.

روش‌های دسترسی به حافظه در کلاس ۲۰ ساله برای انجام عملیات‌های سطح پایین برای حذف در نسخه آتی جاوا علامت‌گذاری می‌شوند.

روش های دسترسی به حافظه کلاس sun.misc.Unsafe جاوا برای حذف منسوخ شد در نسخه بعدی پلتفرم، تحت یک JEP (پیشنهاد ارتقاء JDK) در جامعه OpenJDK. از ۸۷ متد کلاس، ۷۹ متد حذف خواهند شد.

پیشنهاد می‌گوید:

این روش‌های پشتیبانی‌نشده از زمان JDK 9، برای دسترسی به حافظه روی پشته، و JDK 22 برای دسترسی به حافظه خارج از هیپ، جایگزین‌هایی پشتیبانی می‌کنند. توسعه دهندگان کتابخانه به شدت تشویق می شوند که از sun.misc.Unsafe به این جایگزین های پشتیبانی شده مهاجرت کنند. اهداف این پیشنهاد شامل آماده‌سازی برای حذف این روش‌های دسترسی به حافظه در نسخه جاوا آینده و کمک به توسعه‌دهندگان است که بدانند چه زمانی برنامه‌هایشان به آن‌ها تکیه می‌کنند. هدف پیشنهاد حذف کامل کلاس sun.misc.Unsafe نیست، زیرا تعداد کمی از روش‌های آن برای دسترسی به حافظه استفاده نمی‌شوند و قدیمی باقی می‌مانند.

IBM پلتفرم محاسبات کوانتومی Qiskit را می سازد

این پیشنهاد به نسخه خاصی از جاوا اشاره نمی کند که این روش ها را منسوخ کند. نسخه بعدی جاوا استاندارد، JDK 22، که در ماه مارس عرضه می شود، در حال حاضر ویژگی های آن ثابت شده است. اما JDK 23 که احتمالاً در ماه سپتامبر منتشر می‌شود، می‌تواند هدف احتمالی باشد.

پیشنهادات OpenJDK یکپارچگی جاوا و رمزگذاری را تقویت می کند

در گذشته، کد ناامن برای برنامه‌نویسی سطح پایین مورد نیاز بود. کلاس sun.misc.Unsafe در سال ۲۰۰۲ به عنوان راهی برای کلاس های جاوا در JDK برای انجام عملیات سطح پایین معرفی شد. روش های دسترسی به حافظه آن، همانطور که از نام کلاس پیداست، ناامن هستند و می توانند منجر به رفتار نامشخص شوند، بنابراین به عنوان یک API استاندارد در معرض نمایش قرار نگرفتند. آنها با این فرض معرفی شدند که منحصراً برای استفاده در JDK هستند، تماس‌گیرندگان در JDK قبل از استفاده از آنها، بررسی‌های ایمنی جامعی را انجام می‌دهند و APIهای استاندارد ایمن برای عملکرد به پلتفرم جاوا اضافه می‌شوند.

جاوا 22 پیشرفت های امنیتی را به ارمغان می آورد

اما بدون هیچ راهی در سال ۲۰۰۲ برای جلوگیری از استفاده sun.misc.Unsafe در خارج از JDK، روش های دسترسی به حافظه آن به یک “چاقوی ارتش سوئیس” برای توسعه دهندگان کتابخانه تبدیل شد که خواهان قدرت و عملکرد بیشتر بودند. از آنچه APIهای استاندارد می توانند ارائه دهند. متأسفانه، همه کتابخانه‌ها قبل از فراخوانی این روش‌ها، بررسی‌های ایمنی را انجام نمی‌دهند، بنابراین خطر خرابی و خرابی در برنامه‌ها وجود دارد.

در طول چندین سال گذشته، دو API استاندارد به عنوان جایگزینی برای روش‌های دسترسی به حافظه در sun.misc.Unsafe معرفی شده‌اند. اینها java.lang.invoke از JDK 9 و java.lang.foreign از JDK 22 هستند.