CodeGym /جاوا بلاگ /Random-UR /پہلے حفاظت. کیا جاوا کو اچھی وجہ سے ایک محفوظ زبان کہا جا...
John Squirrels
سطح
San Francisco

پہلے حفاظت. کیا جاوا کو اچھی وجہ سے ایک محفوظ زبان کہا جاتا ہے؟

گروپ میں شائع ہوا۔
پروگرامنگ زبان کے طور پر جاوا کے بارے میں بہت سی اچھی چیزیں ہیں۔ یہ خوبصورت لیکن طاقتور، کراس فنکشنل، اور پلیٹ فارم سے آزاد ہے۔ آبجیکٹ پر مبنی اور پورٹیبل ہونے کے ساتھ، جیسا کہ اس کی سب سے زیادہ طاقتوں کا ذکر کیا گیا ہے، جاوا کا ایک اور بڑا فائدہ زیر سایہ رہتا ہے، لہذا نئے آنے والے اکثر صحیح انتخاب کرنے کے لیے، کسی اور پروگرامنگ لینگویج کے بجائے جاوا کا مطالعہ کرنے کے تمام فوائد کی محدود سمجھ رکھتے ہیں۔ کیا آپ نے کبھی جاوا کو محفوظ پروگرامنگ لینگویج کہتے سنا ہے؟ یہ ہے، اور بجا طور پر. پہلے حفاظت.  کیا جاوا کو اچھی وجہ سے ایک محفوظ زبان کہا جاتا ہے؟  - 1 اس لیے ہم نے سوچا کہ اب وقت آگیا ہے کہ اس پر کچھ روشنی ڈالی جائے، اور وضاحت کی جائے کہ جاوا کو محفوظ زبان کیوں کہا جاتا ہے اور یہ کس طرح سے بالکل محفوظ ہے۔

جاوا کو محفوظ زبان کیا بناتی ہے؟

کیا جاوا محفوظ ہے؟ جاوا کو ایک محفوظ پروگرامنگ لینگویج کہنے کی بہت سی وجوہات ہیں، حالانکہ یہ کہنا کہ جاوا کو دوسری زبانوں کے مقابلے میں زیادہ محفوظ ہے، اسے ڈالنے کا مناسب طریقہ ہوگا کیونکہ یہ خصوصیات اصل میں جاوا کو بالکل محفوظ نہیں بناتی ہیں، وہ بنیادی طور پر جاوا کوڈ پر عمل درآمد کی حفاظت کو بہتر بنائیں۔
  • بائٹ کوڈ کی تصدیق۔
بائٹ کوڈ کی تصدیق جاوا کوڈ کی حفاظت کو یقینی بنانے والی بنیادی خصوصیات میں سے ایک ہے۔ بائیک کوڈ کی توثیق کا مطلب ہے کہ جاوا ایک کمپائلر کا استعمال کرتا ہے، جو جاوا کوڈ کو پڑھتا ہے اور اسے مشین سے آزاد بائیک کوڈ کی نمائندگی میں ترجمہ کرتا ہے۔ یہ اس بات کو یقینی بنانے کی اجازت دیتا ہے کہ صرف جائز بائیک کوڈز پر عمل درآمد ہو، اور کوئی بدنیتی پر مبنی کوڈ سسٹم میں داخل نہیں ہو سکتا۔ کمپائلر چیک کرتا ہے کہ بائی کوڈز جاوا لینگویج کی تفصیلات کے مطابق ہیں اور جاوا لینگویج کے قواعد یا نام کی جگہ کی پابندیوں کی خلاف ورزی نہیں کرتے ہیں۔ کوڈ کو کئی دوسرے 'سرخ جھنڈوں' کے لیے بھی چیک کیا جاتا ہے، جیسے غیر قانونی ڈیٹا ٹائپ کاسٹ، اسٹیک انڈر فلو اور اوور فلو، یا میموری مینجمنٹ کی خلاف ورزی۔ اسے آسان طریقے سے سمجھانے کے لیے، جاوا پروگراموں کو بائٹ کوڈ کے طور پر مرتب کیا جاتا ہے، جو پھر ایک ورچوئل مشین کے اندر چلتا ہے، اور جس کمپیوٹر پر چلتا ہے اس تک رسائی حاصل نہیں کر سکتا۔ یہ اس کوڈ کو استعمال کرنے میں زیادہ محفوظ بناتا ہے، جو صارفین کو ہر قسم کے مالویئر سے بچاتا ہے۔
  • خودکار میموری کا انتظام۔
محفوظ زبان کے طور پر جاوا کی ایک اور اہم خصوصیت خودکار میموری کا انتظام اور کوڑے کو جمع کرنا ہے، جو جاوا کو کوڈر کے لیے بہت آسان زبان بناتی ہے کیونکہ جاوا خود بخود تمام اندرونی میموری کے مسائل اور ڈیٹا مینجمنٹ سسٹم کا خیال رکھتا ہے۔ یہ پروگرامر کو پروگرام بناتے وقت میموری کے مسائل کے بارے میں بالکل بھی فکر مند نہیں ہونے دیتا ہے، اس کے بجائے دوسری اہم چیزوں پر توجہ مرکوز کرتا ہے۔ کوڑا اٹھانا، مثال کے طور پر، خود بخود میموری کو آزاد کر دیتا ہے جب اس کی ضرورت ہوتی ہے۔ ویسے، جاوا میں اس تمام مینجمنٹ آٹومیشن کا ایک اور بڑا فائدہ یہ ہے کہ یہ مجموعی ترقیاتی اخراجات کو کم کرتا ہے (چونکہ بہت سے اہم افعال اور عمل خودکار ہوتے ہیں)۔ کم ترقیاتی لاگت ایک اہم وجہ ہے کہ جاوا پوری دنیا میں انٹرپرائز ڈویلپمنٹ میں اتنا مقبول کیوں ہے — کاروباروں کے لیے دوسری زبانوں کے بجائے Java استعمال کرنا زیادہ فائدہ مند ہے۔
  • کوئی اشارہ نہیں۔
بہت سی دوسری پروگرامنگ زبانوں کے برعکس، C اور C+ مثال کے طور پر، جو ایپلی کیشن میموری کو منظم کرنے کے لیے پوائنٹر ویلیوز کا استعمال کرتی ہیں، جاوا میں پوائنٹرز کا کوئی تصور نہیں ہے۔ اگرچہ اصل میں ایک حفاظتی اقدام کے طور پر ڈیزائن کیا گیا ہے (چوروں سے نجی ڈیٹا کی حفاظت کے لیے)، پوائنٹرز بھی اس معاملے میں ایک بڑا خطرہ بن سکتے ہیں جب کچھ قسم کے خراب کار ان تک رسائی حاصل کرنے کا انتظام کرتے ہیں کیونکہ پوائنٹرز کے پاس ان میں اجازت کی تصدیق کرنے کا کوئی طریقہ نہیں ہوتا ہے۔ ، بنیادی طور پر کسی کو بھی ایپلی کیشن کی میموری تک رسائی کی اجازت دیتا ہے۔ جاوا، جیسا کہ ہم نے کہا، پوائنٹرز کا استعمال نہیں کرتا، اس کے بجائے اپنے ڈیٹا مینجمنٹ سسٹمز اور اندرونی میموری پر انحصار کرتا ہے، ڈیٹا کو کسی بھی غیر مجاز رسائی سے بچانے کے طریقے کے طور پر۔ اس سے ہیکرز کے لیے جاوا ایپلی کیشن کی میموری میں دراندازی کرنا کافی حد تک ناممکن ہو جاتا ہے۔ قابل فہم طور پر، یہ ایک اور وجہ ہے کہ جاوا انٹرپرائز ڈویلپمنٹ میں مقبول ہے، ان بڑے کاروباروں میں جو اپنی ایپلیکیشنز کو ممکنہ حد تک محفوظ بنانے کے لیے ڈیزائن کرنا چاہتے ہیں اور اپنے نجی ڈیٹا کو سائبر کرائمینلز سے محفوظ رکھتے ہیں۔
  • جاوا کمپائلر خود بخود کوڈ میں غلطیوں کی جانچ، پتہ لگاتا اور درست کرتا ہے۔
غلطیوں کے لیے کوڈ کی خودکار جانچ جاوا کی ایک اور اہم خصوصیت ہے جو اسے زیادہ محفوظ بناتی ہے۔ کمپائلر کوڈ کو چیک کرتا ہے، غلطیوں کا پتہ لگاتا ہے، پروگرامر کو ان تیروں کے بارے میں خبردار کرتا ہے، اور انہیں ٹھیک کرنے کے طریقے بتاتا ہے۔ یہ، پھر سے، پروگرامر کے کام کو آسان بناتا ہے، جاوا ایپلی کیشنز کو بہت زیادہ مستحکم بناتا ہے، اور بالآخر، ترقیاتی اخراجات کو کم کرتا ہے (کسی بھی کمپنی کے لیے وجہ نمبر 1)۔ جہاں تک اس کے حفاظتی حصے کا تعلق ہے، اس سے آپ کے پروگرام میں بیرونی بدنیتی پر مبنی کوڈ کے داخل ہونے کے امکانات بھی کم ہو جاتے ہیں جس میں اس میں غیر مجاز ترمیم کی جاتی ہے۔
  • جاوا خودکار ڈیٹا ٹائپ چیکنگ کرتا ہے۔
غلطیوں کے لیے کوڈ چیک کرنے کے علاوہ، جاوا کمپائلر خود بخود کوڈ میں متغیرات کا بھی جائزہ لیتا ہے، تاکہ یہ یقینی بنایا جا سکے کہ متغیرات میں ڈیٹا انٹری کی غلطیوں سے کوئی حفاظتی خدشات پیدا نہیں ہو سکتے۔ سسٹم کو دراندازی اور ڈیٹا چوری ہونے سے بچانے کا یہ دوسرا طریقہ ہے۔

جاوا کے کون سے اجزاء اصل میں اسے محفوظ بناتے ہیں؟

جہاں تک جاوا کے مخصوص اجزاء کا تعلق ہے جو اس کی حفاظت میں سب سے اہم کردار ادا کرتے ہیں، یہاں ایک فوری فہرست ہے تاکہ آپ کو بنیادی سطح پر ایک واضح تفہیم فراہم کی جا سکے، کہ یہ کیسے کام کرتا ہے اور جاوا کو بالکل محفوظ کیا بناتا ہے۔
  • جاوا ورچوئل مشین (JVM)۔
JVM، ایک ورچوئل مشین ہونے کے ناطے جو جاوا پروگرام کے بائیک کوڈ کی نمائندگی کرتی ہے، ظاہر ہے کہ جاوا کی مجموعی سیکیورٹی میں بہت اہم کردار ادا کرتی ہے۔ JVM کا استعمال آپ کو کسی پروگرام کے ممکنہ طور پر غیر محفوظ آپریشن کو روکنے کی اجازت دیتا ہے۔
  • جاوا کرپٹوگرافی آرکیٹیکچر (JCA)۔
جاوا کرپٹوگرافی آرکیٹیکچر ایک ایسا فریم ورک ہے جو آپ کو جاوا پلیٹ فارم کے لیے کرپٹوگرافک فعالیت شامل کرنے کی اجازت دیتا ہے۔ جاوا کرپٹوگرافی آرکیٹیکچر کا استعمال اس بات کی ضمانت دیتا ہے کہ آپ کا ڈیٹا انکرپٹ ہو جائے گا اور محفوظ رہے گا۔
  • پبلک کلیدی انفراسٹرکچر (PKI)۔
پبلک کلیدی انفراسٹرکچر ایک اور فریم ورک ہے، جو آپ کو ڈیٹا کا محفوظ تبادلہ حاصل کرنے کے لیے عوامی کلید کی خفیہ نگاری کو لاگو کرنے کی اجازت دیتا ہے۔ PKI کا استعمال کرتے ہوئے، آپ شناخت کو ڈیجیٹل سرٹیفکیٹس سے جوڑ سکتے ہیں، اور ضرورت پڑنے پر سرٹیفکیٹس کی صداقت کی تصدیق کر سکتے ہیں۔
  • سیکیورٹی مینیجر۔
جاوا میں سیکیورٹی مینیجر بنیادی طور پر ایک کلاس ہے، جو ایپلی کیشنز کو سیکیورٹی پالیسی کو لاگو کرنے کی اجازت دیتا ہے، ان کے لیے سیکیورٹی پالیسی کی وضاحت کرتا ہے، اور پروگرامر کو ایپ کے لیے سیکیورٹی لیول سیٹ کرنے کی اجازت دیتا ہے۔
  • جاوا سینڈ باکس۔
جاوا سینڈ باکس جاوا ایپلٹس کو چلانے کے لیے ایک پروگرام کا علاقہ ہے، جو اس بات پر پابندی لگاتا ہے کہ ایپلٹ اس بات کو یقینی بنانے کے لیے کیا کر سکتا ہے کہ یہ سیکیورٹی سے سمجھوتہ نہیں کرے گا اور حفاظتی جانچ کے بغیر سسٹم کے وسائل تک نہیں پہنچ سکتا ہے۔

آراء

کیا کئی سالوں کے تجربے کے حامل پیشہ ور جاوا ڈویلپرز کو یقین ہے کہ یہ زبان محفوظ ہے؟ یہاں چند اقتباسات ہیں۔ "میں کہوں گا کہ جاوا اس طرح محفوظ نہیں ہے (کوئی پروگرامنگ زبان نہیں ہے)، لیکن JVM ایسی خصوصیات پیش کرتا ہے جو سیکیورٹی فراہم کرتی ہے۔ لہٰذا جب کہ جاوا آپ کو ہر چیز سے محفوظ نہیں رکھے گا، یہ آپ کو تمام قسم کے مسائل سے بچائے گا جو بفر اووررنز کی وجہ سے پیدا ہوتے ہیں،" بلیک اسپارک میڈیا کمپنی کے تجربہ کار پروگرامر اور سی ٹی او گیری ٹیلر نے کہا ۔ "جاوا ایک ایپلٹ کو جاوا ایگزیکیوشن ماحول تک محدود کرکے اور اسے کمپیوٹر کے دوسرے حصوں تک رسائی کی اجازت نہ دے کر سیکیورٹی کو بہتر بناتا ہے۔ ایپلٹس کو اس اعتماد کے ساتھ ڈاؤن لوڈ کرنے کی اہلیت کہ کوئی نقصان نہیں پہنچے گا اور یہ کہ کسی سیکورٹی کی خلاف ورزی نہیں کی جائے گی، بہت سے لوگ جاوا کا واحد سب سے اختراعی پہلو سمجھتے ہیں،" IBM کے ایک سافٹ ویئر انجینئر سمیت پرکاش نے نوٹ کیا۔

خلاصہ

تو، کیا جاوا محفوظ ہے؟ اس کا خلاصہ کرتے ہوئے، جاوا میں یقینی طور پر بہت ساری عمدہ خصوصیات اور بلٹ ان ٹولز ہیں جو اسے زیادہ محفوظ بناتے ہیں۔ ان میں سے بہت سی خصوصیات جاوا کی مجموعی مقبولیت میں اہم کردار ادا کرتی ہیں، خاص طور پر انٹرپرائز مارکیٹ میں، کیونکہ یہ کمپنیوں کو اپنے ڈیٹا کو غیر مجاز رسائی سے مؤثر طریقے سے محفوظ رکھنے کی اجازت دیتی ہیں، جبکہ متعدد ترقیاتی عمل کو خودکار بھی کرتی ہیں جو دوسری زبانوں کے ذریعے خودکار نہیں ہیں۔ لیکن، جتنا ہم جاوا کے بارے میں شیخی مارنا پسند کرتے ہیں اور یہ کتنا اچھا ہے، جاوا ابھی بھی مکمل طور پر محفوظ ہونے سے بہت دور ہے۔ درحقیقت، کوئی بھی پروگرامنگ زبان مکمل طور پر محفوظ نہیں ہے، ہر ایک کی اپنی طاقتیں اور کمزوریاں (خطرناکیاں) ہیں۔ عام طور پر، C کو وہاں کی سب سے کمزور پروگرامنگ زبان سمجھا جاتا ہے۔ ماہرین کا کہنا ہے کہ جاوا، اوپر بیان کردہ متعدد بہترین حفاظتی خصوصیات کے باوجود، سرور کی طرف اب بھی کمزور ہے، اور استحصال کا شکار ہو سکتا ہے ۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION