অ্যাপল ফাইলএক্সিস্টপথ: পদ্ধতিতে নির্ভর করার বিরুদ্ধে পরামর্শ দেয়। কেবলমাত্র একটি ফাইল খোলার চেষ্টা করা এবং ফাইলটি উপস্থিত না থাকলে ত্রুটিটি মোকাবেলা করা প্রায়শই ভাল।
এনএসফাইম্যানেজার ক্লাস রেফারেন্স
দ্রষ্টব্য: ফাইল সিস্টেমের বর্তমান অবস্থা বা ফাইল সিস্টেমের একটি নির্দিষ্ট ফাইলের উপর ভিত্তি করে আচরণের পূর্বাভাস দেওয়ার চেষ্টা করা বাঞ্ছনীয় নয়। এটি করার ফলে বিজোড় আচরণ বা বর্ণের পরিস্থিতি হতে পারে। কোনও অপারেশন (যেমন কোনও ফাইল লোড করা বা ডিরেক্টরি তৈরি করা) চেষ্টা করা, ত্রুটিগুলি পরীক্ষা করা এবং সেই ত্রুটিগুলি নিখুঁতভাবে পরিচালনা করা অপারেশনটি সফল হবে কিনা তা আগে বের করার চেষ্টা করার চেয়ে এটি আরও ভাল। ফাইল সিস্টেমের রেসের শর্তাদি সম্পর্কে আরও তথ্যের জন্য, সিকিউর কোডিং গাইডে "রেসের শর্ত এবং সুরক্ষিত ফাইল অপারেশন" দেখুন।
উত্স: অ্যাপল বিকাশকারী এপিআই রেফারেন্স
সুরক্ষিত কোডিং গাইড থেকে।
এটি প্রতিরোধ করতে, প্রোগ্রামগুলি প্রায়শই নির্দিষ্ট নামের একটি অস্থায়ী ফাইল টার্গেট ডিরেক্টরিতে উপস্থিত না থাকে তা নিশ্চিত করে পরীক্ষা করে। যদি এই জাতীয় কোনও ফাইল উপস্থিত থাকে তবে অ্যাপ্লিকেশন এটিকে মুছে ফেলে বা দ্বন্দ্ব এড়ানোর জন্য অস্থায়ী ফাইলের জন্য একটি নতুন নাম চয়ন করে। যদি ফাইলটির অস্তিত্ব না থাকে তবে অ্যাপ্লিকেশনটি লেখার জন্য ফাইলটি খোলায়, কারণ সিস্টেম রুটিন যা লেখার জন্য কোনও ফাইল খোলায় তা যদি না থাকে তবে স্বয়ংক্রিয়ভাবে একটি নতুন ফাইল তৈরি করে। আক্রমণকারী, ক্রমাগত একটি প্রোগ্রাম চালিয়ে যা উপযুক্ত নাম দিয়ে একটি নতুন অস্থায়ী ফাইল তৈরি করে, (অল্প অধ্যবসায় এবং কিছুটা ভাগ্য সহ) ফাইলটি অস্থায়ী ফাইলটির অস্তিত্ব ছিল না তা নিশ্চিত করার জন্য যখন পরীক্ষা করা হয়েছিল তখন মধ্যবর্তী ফাঁকায় ফাইলটি তৈরি করতে পারে এবং যখন এটি লেখার জন্য এটি খুলবে। অ্যাপ্লিকেশনটি তখন আক্রমণকারীর ফাইলটি খুলবে এবং এটিকে লিখবে (মনে রাখবেন, সিস্টেমের রুটিন যদি একটি বিদ্যমান ফাইল খোলে তবে, এবং কেবলমাত্র বিদ্যমান ফাইল না থাকলে একটি নতুন ফাইল তৈরি করে)। আক্রমণকারীর ফাইলে অ্যাপ্লিকেশনটির অস্থায়ী ফাইলের চেয়ে পৃথক অ্যাক্সেস অনুমতি থাকতে পারে, সুতরাং আক্রমণকারী তখন সামগ্রীগুলি পড়তে পারে। বিকল্পভাবে, আক্রমণকারীটির ফাইলটি ইতিমধ্যে খোলা থাকতে পারে। আক্রমণকারী কোনও হার্ড লিঙ্ক বা অন্য কোনও ফাইলের প্রতীকী লিঙ্ক (যে কোনও একটি আক্রমণকারীর মালিকানাধীন বা বিদ্যমান সিস্টেম ফাইলের) দ্বারা ফাইলটি প্রতিস্থাপন করতে পারে। উদাহরণস্বরূপ, আক্রমণকারী ফাইলটি সিস্টেম পাসওয়ার্ড ফাইলের প্রতীকী লিঙ্কের সাথে প্রতিস্থাপন করতে পারে, যাতে আক্রমণটির পরে, সিস্টেমের পাসওয়ার্ডগুলি এমন বিন্দুতে নষ্ট হয়ে যায় যে সিস্টেম প্রশাসক সহ কেউই লগইন করতে না পারে। বিকল্পভাবে, আক্রমণকারীটির ফাইলটি ইতিমধ্যে খোলা থাকতে পারে। আক্রমণকারী কোনও হার্ড লিঙ্ক বা অন্য কোনও ফাইলের প্রতীকী লিঙ্ক (যে কোনও একটি আক্রমণকারীর মালিকানাধীন বা বিদ্যমান সিস্টেম ফাইলের) দ্বারা ফাইলটি প্রতিস্থাপন করতে পারে। উদাহরণস্বরূপ, আক্রমণকারী ফাইলটি সিস্টেম পাসওয়ার্ড ফাইলের প্রতীকী লিঙ্কের সাথে প্রতিস্থাপন করতে পারে, যাতে আক্রমণটির পরে, সিস্টেমের পাসওয়ার্ডগুলি এমন বিন্দুতে নষ্ট হয়ে যায় যে সিস্টেম প্রশাসক সহ কেউই লগইন করতে না পারে। বিকল্পভাবে, আক্রমণকারীটির ফাইলটি ইতিমধ্যে খোলা থাকতে পারে। আক্রমণকারী কোনও হার্ড লিঙ্ক বা অন্য কোনও ফাইলের প্রতীকী লিঙ্ক (যে কোনও একটি আক্রমণকারীর মালিকানাধীন বা বিদ্যমান সিস্টেম ফাইলের) দ্বারা ফাইলটি প্রতিস্থাপন করতে পারে। উদাহরণস্বরূপ, আক্রমণকারী ফাইলটি সিস্টেম পাসওয়ার্ড ফাইলের প্রতীকী লিঙ্কের সাথে প্রতিস্থাপন করতে পারে, যাতে আক্রমণটির পরে, সিস্টেমের পাসওয়ার্ডগুলি এমন বিন্দুতে নষ্ট হয়ে যায় যে সিস্টেম প্রশাসক সহ কেউই লগইন করতে না পারে।